<c:foreach>似乎不起作用

时间:2018-08-16 11:25:30

标签: jsp jstl

我已经看过所有类似的问题,但没有找到解决该问题的有效方法。

简单的jsp文件:

   <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <% String[] names = {"Jhn", "Kate", "Larry"};
            pageContext.setAttribute("myNames", names);
    %>
    <html>
    <body>

    <c:forEach var="tempName" items="${myNames}">
        <p>${tempName}</p>
    </c:forEach>
    </body>
    </html>

Maven依赖项:

 <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
        <scope>provided</scope>
    </dependency>

    <dependency>
        <groupId>javax.servlet.jsp</groupId>
        <artifactId>javax.servlet.jsp-api</artifactId>
        <version>2.3.1</version>
    </dependency>

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

JSP文件的输出为

${tempName}

不过,我希望

Jhn 
Kate 
Larry

我觉得我缺少了一些东西,但找不到出什么问题。

编辑: 我想提到的是,如果我创建一个动态Web应用程序并执行相同的操作(显然,除了maven依赖项之外),它可以正常工作,但是一旦创建了maven项目,它就会停止工作

1 个答案:

答案 0 :(得分:0)

嗯,那绝对是荒谬的。 它开始起作用了,我什么也没做就使它起作用。

我唯一要做的是:

已将web.xml添加到web-app标记中:

xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_3_0.xsd"
version="2.4"

然后删除

更改

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

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

,然后返回

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

从技术上讲,什么都没有改变。但是它以某种方式开始起作用。我不知道发生了什么事。

尽管如此,在其他类似项目中,它仍然无法正常工作。