代码之家  ›  专栏  ›  技术社区  ›  jabe

如何在Tomcat 8上使用JSTL 1.2?

  •  0
  • jabe  · 技术社区  · 6 年前

    我想在我的Tomcat8 Web应用程序中使用JSTL1.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 文件指定它是Web应用3.1版

    我还能做些什么来解决这个问题?另外,有没有关于使用JSTL的现代文档?Oracle的文档最终 here 它几乎没有使用JSTL的细节,甚至没有如何获得它的细节。

    webapp结构:

    enter image description here

    1 回复  |  直到 6 年前
        1
  •  0
  •   jabe    6 年前

    就我而言,是Tomcat的 catalina.properties 文件有 jarsToSkip 设置在 \*.jar ,因此不会扫描任何JAR,从而加快启动速度。为了覆盖这个,我添加了 taglibs*.jar (我的罐子叫 taglibs-standard-impl-1.2.5.jar taglibs-standard-spec-1.2.5 ,所以它把两者都收集起来)到 jarsToScan 设置在下面,解决了问题。

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

    Tomcat的页面对使用taglibs有一个很好的描述 here 有帮助 readme .