你的位置:首页 > 网页设计

[网页设计]cannot be resolved in either web.xml or the jar files deployed with this application


原先的项目中的带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.

尝试解决办法 
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,只有

1 Manifest-Version: 1.02 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

VersionJSTL versionRequirements
Standard 1.2JSTL 1.2 (not yet JCP approved)Servlet 2.5, JavaServer Pages 2.1
Standard 1.1JSTL 1.1Servlet 2.4, JavaServer Pages 2.0
Standard 1.0JSTL 1.0Servlet 2.3, JavaServer Pages 1.2

注意上表的对应。