【问题标题】:How to get number of iterations in nested foreach JSTL如何在嵌套的foreach JSTL中获取迭代次数
【发布时间】:2013-01-20 14:03:43
【问题描述】:

我有一个带有

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

【问题讨论】:

    标签: foreach nested jstl


    【解决方案1】:

    您可以像在 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>
    

    【讨论】:

      猜你喜欢
      • 2017-07-03
      • 2016-04-07
      • 2017-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-20
      • 2012-05-28
      相关资源
      最近更新 更多