我正在使用maven2,如何向JSTL添加依赖项(JSP标准标记库)?
答案 0 :(得分:33)
上面提到的依赖关系对我来说还不够(使用Tomcat 5.x作为servlet容器,它本身不提供JSTL实现)。它只是将相应的JSTL接口包导入到项目中,并将在Tomcat中导致运行时错误。
这是我的项目中使用的依赖部分,希望可以帮助其他人。最难的部分是在存储库中命名Apache的JSTL实现。
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.1.1</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<scope>runtime</scope>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>c</artifactId>
<version>1.1.1</version>
<scope>runtime</scope>
<type>tld</type>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>fmt</artifactId>
<version>1.1.1</version>
<scope>runtime</scope>
<type>tld</type>
</dependency>
答案 1 :(得分:31)
您需要将其添加到pom.xml文件中。
在dependencies节点中,您需要添加对JSTL的引用。您可能需要将其范围设置为编译。所以它看起来像这样
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>"whatever version you need"</version>
<scope>runtime</scope>
</dependency>
这假设您在pom.xml或settings.xml
中具有对maven分发存储库的正确引用答案 2 :(得分:3)
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
答案 3 :(得分:1)
我遇到了同样的问题。我通过将Apache Tomcat库添加到Java构建路径来解决它。
查看我的截图,我正在使用Maven:
在添加Tomcat库之前:
添加Tomcat库后:
答案 4 :(得分:1)
<!-- TAGLIB: -->
<dependency>
<groupId>org.apache.taglibs</groupId>
<artifactId>taglibs-standard-spec</artifactId>
<version>1.2.1</version>
</dependency>
<dependency>
<groupId>org.apache.taglibs</groupId>
<artifactId>taglibs-standard-impl</artifactId>
<version>1.2.1</version>
</dependency>
<!-- From taglib doc: To use this distribution with your own web applications, add the following JAR
files to the '/WEB-INF/lib' directory of your application:
- taglibs-standard-spec-1.2.1.jar
- taglibs-standard-impl-1.2.1.jar
- taglibs-standard-jstlel-1.2.1.jar
- xalan-2.7.1.jar
- serializer-2.7.1.jar
-->
<dependency>
<groupId>xalan</groupId>
<artifactId>xalan</artifactId>
<version>2.7.1</version>
</dependency>
<dependency>
<groupId>xalan</groupId>
<artifactId>serializer</artifactId>
<version>2.7.1</version>
</dependency>
<!-- TAGLIB: -->
答案 5 :(得分:0)
<!-- standard.jar -->
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
<!-- JSTL -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.1.2</version>
</dependency>
答案 6 :(得分:0)
在最近的几周内,至少从中央存储库看来,Maven JSTL依赖关系消失了。这在网络上引起了许多问题。
Oracle已经发布了单独的API和实现依赖关系,这实际上就是应该如何分解它们。现在,将不再具有一个javax.servlet.jstl依赖项,而是使用以下内容:
<dependency>
<groupId>javax.servlet.jsp.jstl</groupId>
<artifactId>jstl-api</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>org.glassfish.web</groupId>
<artifactId>jstl-impl</artifactId>
<version>1.2</version>
</dependency>
这可行。