即使我在WAR中没有JSTL JAR,JSTL核心标记库也能正常工作

时间:2013-02-07 11:46:22

标签: jsf-2 jstl

我使用maven创建了一个JSF 2.0项目并创建了一个hello.xhtml页面。我没有包含jstl依赖,但是在我的hello.xhtml页面上,我使用jstl核心标记,包括这个命名空间“xmlns:c =”http://java.sun.com/jsp/jstl/core“< / strong>即可。 并使用以下正常工作的标签。

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

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

1 个答案:

答案 0 :(得分: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等。等等。

另见: