如何获得嵌套的foreach JSTL中的迭代次数

时间:2013-01-20 14:03:43

标签: foreach nested jstl

我有一个带

的TreeMap
<c:if test="${!empty viewObjects}">
    <table  border="0" cellpadding="0" cellspacing="0">
    <c:forEach items="${viewObjects}" var="relations">
        <c:forEach items="${relations.value}" var="role" varStatus="status">
            <c:set var="subcount" value="${status.count + 1 }"/>
            <tr class="color<c:out value="${subcount%2}"/>">
                <td>${relations.key}</td>
                <td>${role.name}</td>
            </tr>
        </c:forEach>
    </c:forEach>
    </table>
</c:if>

如何在嵌套foreach中的每次迭代中只增加+1的子级增加? 根据我的经验,“状态”从第一个foreach迭代开始,所以这也影响子量,我不会得到总迭代。

1 个答案:

答案 0 :(得分:4)

你可以像在Java中那样做:通过使用在最外层循环之外初始化的计数器变量:

int counter = 0;
for (...) {
    for (...) {
        count++;
    }
}

所以在JSTL中,它会变成

<c:set var="counter" value="0"/>
<c:forEach ...>
    <c:forEach ...>
        <c:set var="counter" value="${counter + 1}"/>
    </c:forEach>
</c:forEach>