web 开发 http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar files deployed with this application
1.原先的项目中的带C的片段到新的项目中报错
: .org.apache.jasper.JasperException: /register.jsp (line: 10, column: 1) 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
尝试解决办法
1.引用一种方法测试。
可能是JSTL版本错误。 由于JSTL1.0和JSTL1.1的声明语句不一样。
JSTL 1.0 的声明是:
<%@ taglib prefix=”c” uri=”http://java.sun.com/jstl/core ” %>
JSTL 1.1的声明是:
<%@ taglib prefix=”c” uri=http://java.sun.com/jsp/jstl/core %>如果你使用的JSTL库和你在JSP中的声明不一致。就会报上面提到的Exception。
另外,要注意的是:Tomcat是先引用”TOMCAT_HOME/shared/lib”下面的库,再引用web项目下面的”WEB-INF/lib’的库。
还有就是,jBuilder自带库中的JSTL有两个配置,一个是”JSTL”(1.0),一个是”JSTL1.1”(1.1),注意在做项目的时候别引用错了。
还有一个技巧是:如何判断JSTL的两个库文件(standar.jar和jstl.jar)的版本?
展开jar文件在”META-INF”目录下的MANIFEST.MF文件,其中”Specification-Version”指名的就是版本号。
操作
打开MANIFEST.MF,只有
Manifest-Version: 1.0
Class-Path:
与上文略有不符.对比:代码为http://java.sun.com/jsp/jstl/core,版本应为1.1
将其改成http://java.sun.com/jstl/core后测试,问题仍然存在。
2.可能为web-inf 下的lib没有包,将jstl.jar,standard.jar放在lib下
测试:将这两个包放入后成功。
注意:servlet版本与jstl标签库的jar的版本不匹配,会报错
According to TLD or attribute directive in tag file, attribute value does not ac
Version | JSTL version | Requirements |
---|---|---|
Standard 1.2 | JSTL 1.2 (not yet JCP approved) | Servlet 2.5, JavaServer Pages 2.1 |
Standard 1.1 | JSTL 1.1 | Servlet 2.4, JavaServer Pages 2.0 |
Standard 1.0 | JSTL 1.0 | Servlet 2.3, JavaServer Pages 1.2 |
注意上表的对应。