【发布时间】:2013-06-23 14:24:49
【问题描述】:
我想使用 SDK Java EE 7、Glassfish 4 和 Maven。
这是正确的吗?请注意范围。
1.对于 servlet:
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
<scope>provided</scope>
</dependency>
2。没有标准标签和 JSTL 的 JSP:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
</dependency>
3。对于带有标准标签“c:”的 JSP
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
4.对于带有 JSTL 的 JSP
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
<scope>runtime</scope>
</dependency>
您知道此信息包含的规范吗?
【问题讨论】:
-
您误解了“标准”标签库的含义。这并不意味着它只包含 c 标签。它基本上是 Apache 的整个 JSTL 1.1.2 实现。然后,您有另一个 JSTL 1.2 实现,它是参考实现(通常来自 Sun/Oracle)。他们显然只会相互冲突。基本上,您最终会得到两个不同的 JSTL 实现。你应该只声明其中之一。请注意,Glassfish 已经开箱即用,因此范围显然应该设置为“提供”。
标签: java jsp maven jakarta-ee jstl