未知标签(c:foreach).在日食

Cap*_*ich 7 java eclipse jstl maven

我有jstl代码,它由maven很好地构建......但Eclipse有编译错误"Unknown tag(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>
Run Code Online (Sandbox Code Playgroud)

有人可以帮助我避免这个问题吗?

有完整的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>
Run Code Online (Sandbox Code Playgroud)

`

Osm*_*mar 20

Eclipse中也发生了同样的事情.删除代码中出现的<%@和taglib之间的空格后,它消失了.

所以现在它看起来像这样,警告消失了:


Geo*_*rge 15

您实际需要的是在JSP文件之上添加以下行:

<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
Run Code Online (Sandbox Code Playgroud)

此外,您需要从此处下载JSTL jar文件并将其添加到WEB_INF/lib文件夹中.

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


Ala*_* S. 5

我在 eclipse 中也收到了这个警告。我还收到其他警告,例如:

未知标签(c:if)或未知标签(c:set)等。

为了在 Eclipse 中修复这些警告,我所做的只是在我的 pom 文件中包含以下依赖项。请注意,我使用的是 servlet 2.5 api。

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
Run Code Online (Sandbox Code Playgroud)

您似乎<provided>在 pom 文件中使用了此依赖项。也许这导致了你的问题?