1

我有一个 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 迭代时重新开始,所以这也会影响子计数,我不会得到总迭代次数。

4

1 回答 1

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>
于 2013-01-20T16:27:27.873 回答