1

是否可以在循环中重新分配循环索引以跳过迭代?

玩具示例,打印数字列表1,2,3,4,5,8,9,10

<ul>
<c:forEach var="counter" begin="${1}" end="${10}">
    <li>${counter}</li>
    <c:if test="${counter eq 5}">
        <c:set var="counter" value="${counter+2}" /> <!-- skip two iterations -->
    </c:if>
</c:forEach>
</ul>

这个例子不起作用。有没有办法让它工作?

我并不是说这是一个好主意,我只想知道这是否可能。

4

1 回答 1

2

不。

根据具体的功能要求,您需要以不同的方式解决它。例如,仅在条件真正匹配时才打印迭代项。

<c:forEach var="counter" begin="${1}" end="${10}">
    <c:if test="${counter lt 6 or counter gt 7}">
        <li>${counter}</li>
    </c:if>
</c:forEach>
于 2012-08-28T18:23:48.370 回答