如何在 Tomcat 8 上使用 JSTL 1.2?

How to use JSTL 1.2 on Tomcat 8?

我想在我的 Tomcat 8 网络应用程序中使用 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。 None 互联网上的其他答案为我解决了这个问题。

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

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

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

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

网络应用程序结构:

就我而言,Tomcat 的 catalina.properties 文件的 jarsToSkip 设置为 \*.jar,因此不会扫描任何 jars,从而加快启动速度。为了覆盖它,我将 taglibs*.jar(我的罐子被称为 taglibs-standard-impl-1.2.5.jartaglibs-standard-spec-1.2.5,所以它选择了两者)到它下面的 jarsToScan 设置,这解决了问题。

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

Tomcat 的页面很好地描述了如何使用标签库 here with a helpful readme