带循环的递增计数器1.2.

2022-08-31 14:14:45

这个问题与我之前的问题有关:

Jsp 迭代槽对象列表

我想在我的for循环中插入从0开始的计数器,到目前为止我已经尝试了几种组合:

1.

<c:forEach var="tableEntity" items='${requestScope.tables}'>
   <c:forEach var="rowEntity" items='${tableEntity.rows}' varStatus="count">            
        <c:out value="${count}" />
    </c:forEach>
</c:forEach>

2.

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

第一种方法是,外部循环有 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

我只是不完全熟悉语法。谢谢


答案 1

请尝试以下操作:

<c:set var="count" value="0" scope="page" />

//in your loops
<c:set var="count" value="${count + 1}" scope="page"/>

答案 2

对具有方法的LoopTagStatus的引用。varStatusgetIndex()

所以:

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

另请参阅: