JSTL forEach 标签不遍历集合

JSTL forEach tag not iteraring over collection

我在创建 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 版本只有一个标签(尽管该集合包含 exaclty 24 个项目)。

为什么?

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>