Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将JSTL添加到Maven?_Maven_Jstl - Fatal编程技术网

如何将JSTL添加到Maven?

如何将JSTL添加到Maven?,maven,jstl,Maven,Jstl,我正在使用Mojarra、PrimeFaces和Tomcat6.x进行JSF2.0项目 我需要对一些primefaces组件使用c:forEach,比如p:tab的动态数,但我对c:forEach有问题。JSTL的所有其他标记都工作得很好 我有以下错误: java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/LoopTagStatus 我使用以下xmlns:c=”http://java.sun.com/jsp/jstl/core“

我正在使用Mojarra、PrimeFaces和Tomcat6.x进行JSF2.0项目

我需要对一些primefaces组件使用c:forEach,比如p:tab的动态数,但我对c:forEach有问题。JSTL的所有其他标记都工作得很好

我有以下错误:

java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/LoopTagStatus

我使用以下
xmlns:c=”http://java.sun.com/jsp/jstl/core“
,我试图替换为
xmlns:c=”http://java.sun.com/jstl/core“
但第二个按钮不显示任何内容

这是lib的确切版本:

<dependency>
    <groupId>javax.faces</groupId>
    <artifactId>jsf-api</artifactId>
    <version>2.0.2-FCS</version>
    <scope>provided</scope>
</dependency>

<dependency>
    <groupId>com.sun.faces</groupId>
    <artifactId>jsf-impl</artifactId>
    <version>2.0.4-b03</version>
    <scope>provided</scope>
</dependency>

<dependency>
    <groupId>org.primefaces</groupId>
    <artifactId>primefaces</artifactId>
    <version>2.2.1</version>
</dependency>

<dependency>
    <groupId>javax.el</groupId>
    <artifactId>el-api</artifactId>
    <version>2.2</version>
</dependency>

<dependency>
    <groupId>org.glassfish.web</groupId>
    <artifactId>el-impl</artifactId>
    <version>2.2</version>
</dependency>

javax.faces
JSFAPI
2.0.2-FCS
假如
com.sun.faces
jsf impl
2.0.4-b03
假如
org.primefaces
素面
2.2.1
javax.el
埃尔api
2.2
org.glassfish.web
厄尔尼普勒
2.2
我怎么能修好它

如果需要,我可以提供更具体的信息

编辑: 我添加并尝试了不同的作用域(运行时和编译),但没有任何变化:

<dependency>
    <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
</dependency>

javax.servlet
jstl
1.2
存储库列表:

  <repositories>
    <repository>
      <id>central</id>
      <name>Maven Repository Switchboard</name>
      <layout>default</layout>
      <url>http://repo1.maven.org/maven2</url>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
    </repository>
    <repository>
      <id>maven-repository.dev.java.net</id>
      <name>Java.net Repository for Maven 1</name>
      <url>http://download.java.net/maven/1/</url>
      <layout>default</layout>
    </repository>
    <repository>
      <id>maven2</id>
      <name>Java.net Repository for Maven</name>
      <url>http://download.java.net/maven/2</url>
      <layout>default</layout>
    </repository>
    <repository>
      <id>prime-repo</id>
      <name>Prime Technology Maven Repository</name>
      <url>http://repository.prime.com.tr</url>
      <layout>default</layout>
    </repository>
    <repository>
      <id>JBoss2</id>
      <url>https://repository.jboss.org/nexus/content/repositories/public</url>
    </repository>
    <repository>
      <id>JBoss</id>
      <url>http://repository.jboss.com/maven2</url>
    </repository>
    <repository>
      <id>EclipseLink Repo</id>
      <url>http://www.eclipse.org/downloads/download.php?r=1&amp;nf=1&amp;file=/rt/eclipselink/maven.repo</url>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
    </repository>
    <repository>
      <id>itextpdf.com</id>
      <name>Maven Repository for iText</name>
      <url>http://maven.itextpdf.com/</url>
    </repository>

    <repository>
      <id>guiceyfruit.release</id>
      <name>GuiceyFruit Release Repository</name>
      <url>http://guiceyfruit.googlecode.com/svn/repo/releases/</url>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
      <releases>
        <enabled>true</enabled>
      </releases>
    </repository>
  </repositories>

中心的
Maven存储库交换机
违约
http://repo1.maven.org/maven2
假的
maven-repository.dev.java.net
Maven 1的Java.net存储库
http://download.java.net/maven/1/
违约
马文2
Maven的Java.net存储库
http://download.java.net/maven/2
违约
优质回购
Prime Technology Maven存储库
http://repository.prime.com.tr
违约
JBoss2
https://repository.jboss.org/nexus/content/repositories/public
JBoss
http://repository.jboss.com/maven2
日食回购
http://www.eclipse.org/downloads/download.php?r=1&nf=1&;文件=/rt/eclipselink/maven.repo
真的
itextpdf.com
iText的Maven存储库
http://maven.itextpdf.com/
guiceyfruit.release
GuiceyFruit发布库
http://guiceyfruit.googlecode.com/svn/repo/releases/
假的
真的
这是$TOMCAT_HOME/lib的内容

注释-api.jar catalina-ha.jar catalina-tribes.jar el-impl-2.2.jar jasper.jar jsf api.jar
jsp-api.jar servlet api.jar
tomcat dbcp.jar
tomcat-i18n-fr.jar catalina ant.jar
catalina.jar el-api-2.2.jar
jasper-el.jar jasper jdt.jar
jsf-impl-2.0.4-b03.jar ojdbc6.jar
tomcat-coyote.jar tomcat-i18n-es.jar tomcat-i18n-ja.jar


正如Balus所说,您只需要将JSTL添加到pom.xml中,因为Tomcat不包含它。1.2是最新版本:

<dependency>
   <groupId>javax.servlet</groupId>
   <artifactId>jstl</artifactId>
   <version>1.2</version>
</dependency>

javax.servlet
jstl
1.2

您必须在发行版中包含jstl库。这可能由容器提供,但这不是推荐的做法。当前版本的maven依赖项(在编写本文时)如下所示:


javax.servlet
用于更新。


<!-- 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>
塔格利布 标准 1.1.2 javax.servlet jstl 1.1.2
然后,您可以在jsp页面中使用Java Standart标记和函数,如下所示:

<%@ taglib prefix="c" 
       uri="http://java.sun.com/jsp/jstl/core" %>

<%@ taglib prefix="fn" 
       uri="http://java.sun.com/jsp/jstl/functions" %>

这也单独起作用:

<dependency>
    <groupId>jstl</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
</dependency>

jstl
jstl
1.2

我知道这个问题很老,但它在谷歌搜索结果中的位置很高,所以我添加了这个问题

更新的JSTL版本(仅)在下提供。例如:

<dependency>
    <groupId>org.glassfish.web</groupId>
    <artifactId>javax.servlet.jsp.jstl</artifactId>
    <version>1.2.4</version>
</dependency>

org.glassfish.web
javax.servlet.jsp.jstl
1.2.4

在最近的Tomcat版本中使用:

<dependency>
    <groupId>org.apache.taglibs</groupId>
    <artifactId>taglibs-standard-spec</artifactId>
    <version>1.2.5</version>
</dependency>
<dependency>
    <groupId>org.apache.taglibs</groupId>
    <artifactId>taglibs-standard-impl</artifactId>
    <version>1.2.5</version>
</dependency>

org.apache.taglibs
taglibs标准规范
1.2.5
org.apache.taglibs
taglibs标准impl
1.2.5

Tomcat没有附带JSTL。您需要指示Maven添加JSTL。我改进了标题和标记以吸引合适的人。可能重复的标题和标记不起作用,可能是pom中缺少了什么内容,或者存在一些冲突?需要在tomcat lib目录中包含jstl.jar并使用提供的范围。@LaChamelle您使用的服务器是什么?您是否也包含了standart taglibs?我也遇到了这个错误,将它部署到weblogic服务器,而这个解决方案不起作用。我也在使用Maven进行构建。@Haikalashuha通常位于Maven项目的根目录下。这可能会有所帮助,它帮助了我:[Maven setup]()此线程很旧,但源代码为+1:默认情况下,Tomcat容器不包含任何jstl库。实际上,jar根本不需要位于$Tomcat_HOME/lib中。你可以随意将其打包到web应用的war中。尽管之前和之后的信息不正确,但依赖关系是正确的,因此-1对于bull来说是正确的,并且在找到正确的组id方面做得很好。@EngineerDollery EngineerDollery是正确的,您可以更新答案吗?为什么这些在maven存储库中不可用?它们实际上是:
<dependency>
    <groupId>org.apache.taglibs</groupId>
    <artifactId>taglibs-standard-spec</artifactId>
    <version>1.2.5</version>
</dependency>
<dependency>
    <groupId>org.apache.taglibs</groupId>
    <artifactId>taglibs-standard-impl</artifactId>
    <version>1.2.5</version>
</dependency>