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>
我在创建 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>