现在的位置: 首页 > 综合 > 正文

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

2013年10月27日 ⁄ 综合 ⁄ 共 2352字 ⁄ 字号 评论关闭

偶在页面里引入了标签如下:   
  <%@   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"   %>

抱歉!评论已关闭.