包含与Maven的JSTL依赖关系

时间:2010-02-16 20:26:29

标签: java jsp servlets jstl maven

我正在使用maven2,如何向JSTL添加依赖项(JSP标准标记库)?

7 个答案:

答案 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>

http://mvnrepository.com/artifact/jstl/jstl/1.2

答案 3 :(得分:1)

我遇到了同样的问题。我通过将Apache Tomcat库添加到Java构建路径来解决它。

查看我的截图,我正在使用Maven:

在添加Tomcat库之前:

desc

添加Tomcat库后:

desc

答案 4 :(得分:1)

自:    apache taglib

        <!-- 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>

这可行。