2013-01-20 83 views
1

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

<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> 

一个TreeMap我怎么能有只+1 subcount增加嵌套的foreach内的每一个迭代? 从我经历的“状态”开始,当第一个foreach迭代时,这样也会影响子数,并且我不会得到总迭代。

回答

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>