org.apache.jasper.JasperException: The absolute uri: [http://java.sun.com/jsp/jstl/core] cannot be r

项目启动报错

1.报错内容:

报错先是这样

按照百度的方法添加了c.tld和对应的web.xml文件

Sep 13, 2022 11:25:35 AM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [jsp] in context with path [] threw exception [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] with root cause
org.apache.jasper.JasperException: 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
        at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:56)
        at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:472)
        at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:121)
        at org.apache.jasper.compiler.TagLibraryInfoImpl.generateTLDLocation(TagLibraryInfoImpl.java:325)
        at org.apache.jasper.compiler.TagLibraryInfoImpl.<init>(TagLibraryInfoImpl.java:154)
        at org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:419)
        at org.apache.jasper.compiler.Parser.parseDirective(Parser.java:484)
        at org.apache.jasper.compiler.Parser.parseElements(Parser.java:1421)
        at org.apache.jasper.compiler.Parser.parse(Parser.java:138)
        at org.apache.jasper.compiler.ParserController.doParse(ParserController.java:237)
        at org.apache.jasper.compiler.ParserController.parse(ParserController.java:102)
        at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:204)
        at org.apache.jasper.compiler.Compiler.compile(Compiler.java:394)
        at org.apache.jasper.compiler.Compiler.compile(Compiler.java:370)
        at org.apache.jasper.compiler.Compiler.compile(Compiler.java:354)
        at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:660)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:400)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:742)
        at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:602)
        at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:541)
        at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:896)
        at org.apache.jsp.login_jsp._jspService(login_jsp.java:82)
重新部署项目后,后又变成了这样的错误

于是思考可能是因为仅仅添加了c.tld不够,全局搜索,发现还引用了其他的.tld文件

SEVERE: Servlet.service() for servlet [jsp] threw exception
org.apache.jasper.JasperException: The absolute uri: [http://java.sun.com/jsp/jstl/functions] cannot be resolved in either web.xml or the jar files deployed with this application
        at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:56)
        at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:472)
        at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:121)
        at org.apache.jasper.compiler.TagLibraryInfoImpl.generateTLDLocation(TagLibraryInfoImpl.java:325)
        at org.apache.jasper.compiler.TagLibraryInfoImpl.<init>(TagLibraryInfoImpl.java:154)
        at org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:419)
        at org.apache.jasper.compiler.Parser.parseDirective(Parser.java:484)
        at org.apache.jasper.compiler.Parser.parseElements(Parser.java:1421)
        at org.apache.jasper.compiler.Parser.parse(Parser.java:138)
        at org.apache.jasper.compiler.ParserController.doParse(ParserController.java:237)
        at org.apache.jasper.compiler.ParserController.parse(ParserController.java:102)
        at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:204)
        at org.apache.jasper.compiler.Compiler.compile(Compiler.java:394)
        at org.apache.jasper.compiler.Compiler.compile(Compiler.java:370)
        at org.apache.jasper.compiler.Compiler.compile(Compiler.java:354)
        at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:660)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:400)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:742)

2.解决方案

(1)将项目用到的.tld文件复制到项目的WEB-INF根目录下
(2)在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/fmt</taglib-uri>
      <taglib-location>/WEB-INF/fmt.tld</taglib-location>
    </taglib>
    <taglib>
      <taglib-uri>http://java.sun.com/jsp/jstl/functions</taglib-uri>
      <taglib-location>/WEB-INF/fn.tld</taglib-location>
    </taglib>
  </jsp-config>

注意:web.xml中的标签内部,如有其他内容,需要将上述几行写到该标签内部的最前面,否则可能会有错误,如下图。
在这里插入图片描述
原来的项目并没有出现这样的问题,推测可能是像这个链接中所说的tomcat的配置有问题
https://stackoverflow.com/questions/4928271/how-to-install-jstl-the-absolute-uri-http-java-sun-com-jstl-core-cannot-be-r
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值