1

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

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

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

4

1 回答 1

1

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

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

也可以看看:

于 2013-02-07T11:59:42.613 回答