【问题标题】:Could not resolve JSTL dependency - Tomcat 500 Internal error无法解析 JSTL 依赖项 - Tomcat 500 内部错误
【发布时间】:2020-08-23 12:59:43
【问题描述】:

我目前正在尝试使用 Spring MVC 在 Tomcat 上使用 JSP/JSTL。作为 *.jar 依赖项,我尝试了以下方法:

  • jakarta.servlet.jsp.jstl-1.2.6.jar

  • jakarta.servlet.jsp.jstl-api-1.2.7.jar

  • javax.servlet.jsp.jstl-1.2.1.jar

  • javax.servlet.jsp.jstl-api-1.2.1.jar

web.xml(前几行)

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
        version="4.0">

jsp文件:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
<html>
<head>
    <title>Student Confirmation</title>
</head>
<body>
The student is confirmed: ${student.firstName} ${student.lastName}
<br><br>
Country: ${student.country}
<br><br>
Favorite: ${student.favoriteLanguage}
<br><br>
OS Experiences in:
<c:forEach var="temp" items="${student.osExperiences}">
    ${temp},
</c:forEach>
</body>
</html>
org.apache.jasper.JasperException: Die absolute URI: [http://java.sun.com/jstl/core] kann weder durch web.xml noch durch die JAR-Files dieser Anwendung aufgelöst werden
    org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:55)
    org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:294)
    org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:81)
    org.apache.jasper.compiler.TagLibraryInfoImpl.generateTldResourcePath(TagLibraryInfoImpl.java:251)
    org.apache.jasper.compiler.TagLibraryInfoImpl.<init>(TagLibraryInfoImpl.java:122)
    org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:431)
    org.apache.jasper.compiler.Parser.parseDirective(Parser.java:489)
    org.apache.jasper.compiler.Parser.parseElements(Parser.java:1445)
    org.apache.jasper.compiler.Parser.parse(Parser.java:144)
    org.apache.jasper.compiler.ParserController.doParse(ParserController.java:244)
    org.apache.jasper.compiler.ParserController.parse(ParserController.java:105)
    org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:206)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:386)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:362)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:346)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:605)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:400)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:171)
    org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:316)
    org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1373)
    org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1118)
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1057)
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
    org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:652)
    org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)

【问题讨论】:

    标签: spring-mvc tomcat


    【解决方案1】:

    使用

    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    

    不是

    <%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
    

    见:

    https://jakarta.ee/specifications/tags/2.0/jakarta-tags-spec-2.0.html#multiple-tag-libraries

    如果仅此一项不起作用,还请添加此依赖项(删除其他依赖项):

    <dependency>
    <groupId>org.glassfish.web</groupId>
    <artifactId>jakarta.servlet.jsp.jstl</artifactId>
    <version>2.0.0</version>
    <scope>runtime</scope>
    </dependency>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-10
      • 2012-01-26
      • 1970-01-01
      • 2021-10-17
      • 1970-01-01
      • 2017-05-06
      • 2022-11-12
      • 2020-08-12
      相关资源
      最近更新 更多