2014-03-28 28 views
5

我有jstl代碼,它由maven構建...但Eclipse有編譯錯誤「未知標記(c:foreach)」。未知標籤(c:foreach)。在日食

代碼在這裏:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
    pageEncoding="ISO-8859-1"%> 
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Insert title here</title> 
</head> 
<body> 
    <ul> 
     <c:forEach items="${listOfMyFriends}" var="friend"> 
     <c:out value="${friend}"></c:out> 
     </c:forEach> 

    </ul> 
</body> 
</html> 

可能有人幫助我避免這種promlem?

有充分POM:` http://maven.apache.org/xsd/maven-4.0.0.xsd「> 4.0.0

<groupId>com.godzevych</groupId> 
<artifactId>springInActionMVCTemplate</artifactId> 
<version>0.0.1-SNAPSHOT</version> 
<packaging>war</packaging> 

<name>springInActionMVCTemplate</name> 
<url>http://maven.apache.org</url> 

<properties> 
    <java.version>1.6</java.version> 
    <spring.version>3.1.0.RELEASE</spring.version> 
    <cglib.version>2.2.2</cglib.version> 
</properties> 

<dependencies> 
    <!-- Spring core & mvc --> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-context</artifactId> 
     <version>${spring.version}</version> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-webmvc</artifactId> 
     <version>${spring.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-orm</artifactId> 
     <version>${spring.version}</version> 
     <type>jar</type> 
     <scope>compile</scope> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-test</artifactId> 
     <version>${spring.version}</version> 
     <type>jar</type> 
     <scope>test</scope> 
    </dependency> 

    <!-- CGLib for @Configuration --> 
    <dependency> 
     <groupId>cglib</groupId> 
     <artifactId>cglib-nodep</artifactId> 
     <version>${cglib.version}</version> 
     <scope>runtime</scope> 
    </dependency> 


    <!-- Servlet Spec --> 
    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>servlet-api</artifactId> 
     <version>2.5</version> 
     <scope>provided</scope> 
    </dependency> 

    <!-- JSTL --> 
    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>jstl</artifactId> 
     <version>1.2</version> 
     <scope>provided</scope> 
    </dependency> 

    <!-- JSR 330 --> 
    <dependency> 
     <groupId>javax</groupId> 
     <artifactId>javaee-api</artifactId> 
     <version>6.0</version> 
    </dependency> 

</dependencies> 

<repositories> 
    <repository> 
     <id>springsource-milestones</id> 
     <name>SpringSource Milestones Proxy</name> 
     <url>https://oss.sonatype.org/content/repositories/springsource-milestones</url> 
    </repository> 
</repositories> 

<build> 
    <finalName>springInActionMVCTemplate</finalName> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>2.0.2</version> 
      <configuration> 
       <source>${java.version}</source> 
       <target>${java.version}</target> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

`

+0

你添加這種依賴性? 的javax.servlet JSTL 1.2 提供

+0

肯定,但沒有範圍......現在添加,但沒有改變... –

+0

JSTL 1.2需要在網絡最低Servlet 2.4的聲明.XML。因此,請確保您的web.xml具有適當的根聲明,最好是servlet容器支持的最高支持版本(Tomcat 7是Servlet 3.0,Tomcat 6是Servlet 2.5,而Tomcat 5.5是Servlet 2.4)。 –

回答

3

我也是在Eclipse中得到這個警告,我也越來越其它警告,如:

未知標籤(c:if)或未知的標籤(c:set)

要在eclipse中修復這些警告,我所做的就是在我的pom文件中包含以下依賴項。請注意,我正在使用servlet 2.5 api。

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

你似乎使用<provided>對於這種依賴在你的POM文件。也許這是造成你的問題?

0

正確的標記區分大小寫。 (c:for each)

+1

原始文章已經具有正確的格式。 – Eric

9

在Eclipse中發生了同樣的事情。在我刪除代碼中出現的<%@和taglib之間的空白後,它消失了。

所以,現在看來是這樣,警告消失:

+0

好吧,這是正確的答案。 – GMsoF

6

你真正需要的是增加你的JSP文件的頂部以下行:

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

另外,你需要從here下載JSTL jar文件並將它們添加到WEB_INF/lib文件夾。

找到我的答案在這裏: https://stackoverflow.com/a/8400733/3758439