这个问题与我之前的问题有关:
我想在我的for循环中插入从0开始的计数器,到目前为止我尝试了几种组合:
<c:forEach var="tableEntity" items='${requestScope.tables}'>
<c:forEach var="rowEntity" items='${tableEntity.rows}' varStatus="count">
<c:out value="${count}" />
</c:forEach>
</c:forEach>
Run Code Online (Sandbox Code Playgroud)
<c:set var="count" value="0" scope="page" />
<c:forEach var="tableEntity" items='${requestScope.tables}'>
<c:forEach var="rowEntity" items='${tableEntity.rows}'>
<%=count++%>
<c:out value="${count}" />
</c:forEach>
</c:forEach>
Run Code Online (Sandbox Code Playgroud)
第一种方法的问题是外部循环有3个项目,内部循环有7个项目,因此对于每个外部项目,计数从0开始.第二个我得到编译错误.这基本上是我想要的:
counter = 0;
outer for loop
inner for loop
counter++;
//cout/echo/print counter value should start from 0
end inner loop
end outer loop
Run Code Online (Sandbox Code Playgroud)
我只是不完全熟悉语法.谢谢
dog*_*ane 166
请尝试以下方法:
<c:set var="count" value="0" scope="page" />
//in your loops
<c:set var="count" value="${count + 1}" scope="page"/>
Run Code Online (Sandbox Code Playgroud)
Bal*_*usC 40
其中的varStatus引用LoopTagStatus有一个getIndex()方法.
所以:
<c:forEach var="tableEntity" items='${requestScope.tables}' varStatus="outer">
<c:forEach var="rowEntity" items='${tableEntity.rows}' varStatus="inner">
<c:out value="${(outer.index * fn:length(tableEntity.rows)) + inner.index}" />
</c:forEach>
</c:forEach>
Run Code Online (Sandbox Code Playgroud)