您的位置:首页 > 理论基础 > 计算机网络

The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved

2010-04-01 12:20 555 查看
偶在页面里引入了标签如下:
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
出错提示:

org.apache.jasper.JasperException: /index.jsp(0,0) This absolute uri (http://java.sun.com/jstl/core) cannot be resolved in either web.xml or the jar files deployed with this application
at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:94)
at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:428)
at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:126)
at org.apache.jasper.compiler.Parser.processIncludeDirective(Parser.java:307)
at org.apache.jasper.compiler.Parser.parseIncludeDirective(Parser.java:340)
at org.apache.jasper.compiler.Parser.parseDirective(Parser.java:378)
at org.apache.jasper.compiler.Parser.parseElements(Parser.java:795)
at org.apache.jasper.compiler.Parser.parse(Parser.java:122)
at org.apache.jasper.compiler.ParserController.parse(ParserController.java:199)
at org.apache.jasper.compiler.ParserController.parse(ParserController.java:153)
at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:227)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:369)
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:473)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:190)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

我认为,jsp页面的taglib指令用uri属性指明tld文件位置,当jsp页面被请求时,服务器会企图通过uri指示的位置读取tld文件。

出现楼主所述错误有两个可能的原因:
1、uri指示的位置不存在tld文件。
2、由于网络故障,无法访问uri指定的位置。

如果taglib指令的uri指向internet上某个位置,比如“http://java.sun.com/jstl/core”,就容易遇到上述问题,

为避免这样的问题,我的做法是:

http://jakarta.apache.org/site/downloads/downloads_taglibs-standard.cgi下载实现好的JSTL1.1 将lib中的jstl.jar standard.jar复制到tomcat的web-inf/lib中(在tomcat6 webapps/examples/WEB-INF/lib 中也有这两个jar包。)除了复制.jar文件外,最好也把tld文件的目录也复制到WEB-INF中,以便日后使用。

下面这个方法在网上找到的 没有试过

首先,把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" %>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐