JSTL forEach标记不会迭代集合

时间:2015-11-17 22:39:16

标签: java jsp jstl

我在创建jsp文件时遇到了一些问题。我想使用JSTL以某种方式显示集合。首先,我在jsp:

中创建了一个java代码
<% for(int i = 0; i < ((List<BookPosition>)request.getAttribute("books")).size(); i+=1) { %>  
        <label>Test</label>
<% } %>

然后,我创建了一个JSTL代码段。

<c:forEach var="book" items="$(books)">
        <label>Test</label>
</c:forEach>

不幸的是,第一个输出正确数量的标签(24),而JSTL版本只输出一个标签(尽管该集合包含大量的24个项目)。

为什么?

1 个答案:

答案 0 :(得分:2)

EL expressions的写法如下:${ myExpression }

<c:forEach var="book" items="${ books }">
        <label>Test</label>
</c:forEach>

现在,如果您还想跟踪打印值的数量,可以使用 JSTL核心标记中的varStatus属性来使用计数器:

<c:forEach var="book" items="${ books }" varStatus="counter">
        <label><c:out value="${ counter.count }"/>. Test</label>
</c:forEach>