【问题标题】:JSTL core tag library works even though I don't have JSTL JAR in WAR即使我在 WAR 中没有 JSTL JAR,JSTL 核心标签库也能正常工作
【发布时间】:2013-01-22 21:48:20
【问题描述】:

我使用 maven 创建了一个 JSF 2.0 项目并制作了一个 hello.xhtml 页面。我没有包含 jstl 依赖项,但在我的 hello.xhtml 页面上,我通过包含此命名空间 "xmlns:c="http://java.sun.com/jsp/jstl/core"。 并使用了以下工作正常的标签。

<c:set var="test"  value="${2000*2}"/>
#{test}

现在我想知道这是怎么回事,即使我也检查了生成的 war 文件并且没有 jstl jar 。任何人都可以知道它是如何发生的。

【问题讨论】:

    标签: jsf-2 jstl


    【解决方案1】:

    JSTL(和 JSF!)已由 Java EE Web 配置文件兼容容器(如 Glassfish、JBoss AS 等)提供开箱即用。只是准系统 JSP/Servlet 容器(如 Tomcat、Jetty)不提供开箱即用等。

    显然,您的目标服务器是与 Java EE Web 配置文件兼容的容器。这样您就不需要自己提供 JSTL(也不是 JSF!)。请注意,您的 Maven 依赖项应设置为“provided”(如目标容器已提供)。通常只需 javaee-api 依赖就足够了。它涵盖了 JSP、Servlet、EL、JSTL、JSF、CDI、EJB 等。

    另见:

    【讨论】:

    • 非常感谢@BalusC。是的,我正在使用 Tomcat,抱歉,我没有提到 Web Container 是我的错
    • 此外,我想在 JSF 中制作自定义 JSTL 标签。我知道这不是一个好方法,但它的要求是可以在 JSF 中制作和使用自定义 jstl 标签。如果是,请提供任何链接或教程。这将是一个很大的帮助
    猜你喜欢
    • 1970-01-01
    • 2020-12-20
    • 2013-12-16
    • 2018-12-21
    • 2023-03-21
    • 1970-01-01
    • 2012-10-01
    • 1970-01-01
    • 2011-07-03
    相关资源
    最近更新 更多