当前位置: 代码迷 >> JavaScript >> 【有关问题】 http://java.sun.com/jsp/jstl/core cannot be resolved
  详细解决方案

【有关问题】 http://java.sun.com/jsp/jstl/core cannot be resolved

热度:1162   发布时间:2013-11-13 14:04:18.0
【问题】 http://java.sun.com/jsp/jstl/core cannot be resolved
错误:org.apache.jasper.JasperException: /WEB-INF/views/index/index.jsp(6,0) The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar files deployed with this application

框架:springMVC 3.2.3
tomcat:6.X

---------------------------
看错误,index.jsp第6行:<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core " %>
标签库有问题啊。。。

但是奇怪的是,我在7.X下运行,完全没有任何问题。

后来去网上查了下,说jstl标签需要两个包:jstl.jar和standard.jar。

一看项目的lib,只有jstl.jar包,而standard.jar包却没有。。

所以在项目中加上standard.jar,问题解决。


(至于7.X下为什么可以就不清楚了,看了下tomcat的lib下,也没有这个包。)

--------------------------

查看了下tomcat 6.X的servlet版本,是2.5,jstl.jar版本是1.1,网上前辈说jstl.jar1.2以上可以不用standard.jar。

tomcat 7.X的servlet版本是3.0,不知道3.0版本是否对jstl进行扩展以便更好的支持标签库的原因,才导致7.X下不需要standard.jar。

具体的servlet,jsp,jstl的版本配置如下图:


---------------------------
如何查看版本:将jar文件右键,用360压缩,或是WinRar打开,里面有个META-INF文件夹,打开它,找到MANIFEST.MF.

如下:
Manifest-Version: 1.0
Specification-Title: JavaServer Pages Standard Tag Library (JSTL)
Created-By: 1.4.2-38 ("Apple Computer, Inc.")
Ant-Version: Apache Ant 1.6.1
Implementation-Title: JavaServer Pages Standard Tag Library API Refere
nce Implementation
Specification-Version: 1.1
Implementation-Vendor-Id: com.sun
Extension-Name: javax.servlet.jsp.jstl
Implementation-Version: 1.1.2
Implementation-Vendor: Sun Microsystems, Inc.

就能找到相应的版本号了。

---------------------------
参考网址:
How to Reference and Use JSTL in your Web Application
http://www.mularien.com/blog/2008/04/24/how-to-reference-and-use-jstl-in-your-web-application/




  相关解决方案