jstl 1.1:两个包jstl.jar standard
jstl 1.2:只在一个包jstl.jar
关于JSP中org.apache.jasper.JasperException:
This absolute uri http://java.sun.com/jsp/jstl/core ) cannot be resolved in either web.xml or the jar files deployed with this application
说法是:一个就是JSTL的版本问题(1.0与1.1),是否不一致。 还有就是检查虚拟目录下WEB-INF目录下的lib文件夹(如果同有lib文件夹,后动创建一个)中是否有jstl.jar和standard.jar两个jar包 ,如果没有则把它们复制到lib下面。
都试了,不过报错依旧……后来又找了一下加上自己的乱搞,按照上面的改过之后,大体有两种解决方法:
第一种就是在Eclipse的工程中导入JSTL1.1后,下载JSTL1.1 http://jakarta.apache.org/taglibs/index.html
然后解压,把*.jar和*.tld放到/WEB-INF/lib目录下。也就是将所有的jakarta-taglibs-standard-current.zip(JSTL的类库)中的.jar和.tlb放到WEB-INF目录下的 lib文件夹中,JSP文件中导入<%@ taglib prefix="c" uri="/WEB-INF/lib/c.tld" %>, 经试验是可以的。
第二种是修改web.xml,加上下面的语句:
<jsp-config>
<taglib>
<taglib-uri>http://java.sun.com/jsp/jstl/core</taglib-uri>
<taglib-location>/WEB-INF/c.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jsp/jstl/xml</taglib-uri>
<taglib-location>/WEB-INF/x.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jsp/jstl/fmt</taglib-uri>
<taglib-location>/WEB-INF/fmt.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jsp/jstl/sql</taglib-uri>
<taglib-location>/WEB-INF/sql.tld</taglib-location>
</taglib>
</jsp-config>
JSP中导入<%@ taglib prefix="c" uri=" http://java.sun.com/jsp/jstl/core " %>。 应该就可以了……
推荐第二种^_^!
我认为,jsp页面的taglib指令用uri属性指明tld文件位置,当jsp页面被请求时,服务器会企图通过uri指示的位置读取tld文件。
出现楼主所述错误有两个可能的原因:
1、uri指示的位置不存在tld文件。
2、由于网络故障,无法访问uri指定的位置。
如果taglib指令的uri指向internet上某个位置,比如“http://java.sun.com/jstl/core”,就容易遇到上述问题,为避免这样的问题,我的做法是:
首先,把tld文件拷贝到自己的web应用中,如拷贝到/WEB-INF/taglibs下面。
然后,在web.inf中加上类似这样的内容:
<taglib>
<taglib-uri> jsf_core </taglib-uri>
<taglib-location> /WEB-INF/taglibs/c.tld </taglib-location>
</taglib>
页面的taglib指令写成这个样子:
<%@ taglib uri= "jsf_core " prefix= "c " %>
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。