apache - 绝对 uri : http://java. sun.com/jsp/jSTL/core 无法在 web.xml 或使用此应用程序部署的 jar 文件中解析

标签 apache jakarta-ee jstl tomcat7

我使用的是 JDK 1.7、Apache Tomcat 7.0.23,并且我已将 JSTL 核心库(1.2) 和 STANDARD jar 放在 WEB_INF lib 文件夹中,它没有给我任何警告,但当我尝试运行代码时

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- Create Bean Instance-->
<jsp:useBean id="listdomain" class="bean.PopulateMultiDomain" scope="session"></jsp:useBean>

<jsp:setProperty property="*" name="listdomain"/>

<c:forEach var="item" items="${listdomain.status}">
    <option>
        <c:out value="${item}" />
    </option>
</c:forEach> 

它给了我以下错误:

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
    org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:56)
    org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:410)
    org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:117)
    org.apache.jasper.compiler.TagLibraryInfoImpl.generateTLDLocation(TagLibraryInfoImpl.java:311)
    org.apache.jasper.compiler.TagLibraryInfoImpl.<init>(TagLibraryInfoImpl.java:152)
    org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:410)
    org.apache.jasper.compiler.Parser.parseDirective(Parser.java:475)
    org.apache.jasper.compiler.Parser.parseElements(Parser.java:1425)
    org.apache.jasper.compiler.Parser.parse(Parser.java:138)
    org.apache.jasper.compiler.ParserController.doParse(ParserController.java:242)
    org.apache.jasper.compiler.ParserController.parse(ParserController.java:102)
    org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:198)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:373)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:353)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:340)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:646)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

谁能告诉我我犯了什么错误?

最佳答案

删除standard.jar。当 TLD URI 没有 /jsp 路径时,它显然是旧的 JSTL 1.0 版本。 JSTL 1.2 可用 here您根本不需要 standard.jar 。只需 /WEB-INF/lib 中的 jSTL-1.2.jar 就足够了。

另请参阅:

关于apache - 绝对 uri : http://java. sun.com/jsp/jSTL/core 无法在 web.xml 或使用此应用程序部署的 jar 文件中解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17831979/

相关文章:

java - jSTL 使用 c :foreach list<MyClass> 进行迭代

apache - 在 HDP2.1 Hbase 中找不到 graceful_stop.sh

ruby-on-rails - Apache 对 POST 请求大小的限制

java - EJB3 业务逻辑模式与实践

java - findByUsername 或 Facade 抽象类的 find 方法

java - 请求方法 'GET' 不支持 Spring MVC

php - 为什么在这种情况下使用 RewriteCond 和 RewriteRule 重定向会失败?

django - 为什么在URL的末尾需要一个斜杠?

java - hibernate vs weblogic antlr 版本

foreach - 根据 TLD,forEach 标签的属性值无效