Инкремент счетчика с петлей



этот вопрос связан с моим предыдущим вопросом:



ССП итерации через список объектов



Я хочу вставить счетчик, который начинается с 0 в моем цикле for, я пробовал несколько комбинаций до сих пор:



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


Я просто не совсем знаком с синтаксисом. спасибо

716   4  

4 ответов:

попробуйте следующее:

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

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

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

Читайте также:

вы можете использовать varStatus в вашем цикле c: forEach

в первом примере вы можете заставить счетчик работать правильно следующим образом...

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

что привело меня на эту страницу, так это то, что я установил внутри страницы, а затем внутри включенной страницы я сделал инкремент

и вот в чем проблема

поэтому, чтобы решить такую проблему, просто использовать scope="request" при объявлении переменной или приращения

//when you set the variale add scope="request"
<c:set var="nFilters" value="" scope="request"/>
//the increment, it can be happened inside an included page
<c:set var="nFilters" value="${nFilters + 1}"  scope="request" />

надеюсь, что это экономит ваше время

Comments

    Ничего не найдено.