首页 > 解决方案 > 如何在 Tomcat 8 上使用 JSTL 1.2?

问题描述

我想在我的 Tomcat 8 Web 应用程序中使用 JSTL 1.2。我继续搞定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。互联网上的其他答案都没有为我解决这个问题。

我已验证 jstl-1.2.jar 位于我的 Web 应用程序的WEB-INF/lib文件夹中,并且我的 JSP 具有更新的,<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>在顶部声明。

如果我用 7zip 打开 jstl-1.2.jar 文件,我可以清楚地看到c.tld文件META-INF夹内的文件,在该文件中我什至可以看到这一行:<uri>http://java.sun.com/jsp/jstl/core</uri>.

我没有使用 maven,只是根据需要将 jar 复制到 WEB-INF/lib 文件夹中。我的网络应用程序web.xml文件指定它是网络应用程序版本 3.1

我还能做些什么来解决这个问题?另外,有没有关于使用 JSTL 的现代文档?Oracle 的文档在这里结束,其中几乎没有关于使用 JSTL 的详细信息,甚至没有关于如何获取它的详细信息。

网页应用结构:

在此处输入图像描述

标签: jstl

解决方案


就我而言,Tomcat 的catalina.properties文件的jarsToSkip设置为\*.jar,因此不会扫描 jar,从而加快启动速度。为了覆盖这一点,我将taglibs*.jar(我的罐子被称为taglibs-standard-impl-1.2.5.jarand taglibs-standard-spec-1.2.5,所以它都拾起)添加到jarsToScan它下面的设置中,从而解决了问题。

我猜如果不扫描罐子,就找不到标签库。

Tomcat 的页面有一个很好的关于使用 taglibs的文章和一个有用的自述文件


推荐阅读