一尘不染

JSTL c:forEach,递减数循环不可能吗?

jsp

我想打印递减数字,例如:

<c:forEach var="i" begin="10" end="0" step="-1">
    ... ${i} ...
</c:forEach>

然后我得到了jsp异常:

javax.servlet.jsp.JspTagException: 'step' <= 0
    javax.servlet.jsp.jstl.core.LoopTagSupport.validateStep(LoopTagSupport.java:459)
    org.apache.taglibs.standard.tag.rt.core.ForEachTag.setStep(ForEachTag.java:60)
    ....

但是这个答案说有可能以两种方式循环:

JSTL forEach逆序

我怎么了


阅读 548

收藏
2020-06-08

共1个答案

一尘不染

我不确定其他问题的回答者如何使其起作用,但是我无法在参考JSTL实现中使其起作用。

无论如何,您可以通过以下方法达到要求:

<c:forEach var="i" begin="0" end="10" step="1">
    ... ${10 - i} ...
</c:forEach>

或者,如果您想避免重复10

<c:forEach var="i" begin="0" end="10" step="1" varStatus="loop">
    ... ${loop.end - i + loop.begin} ...
</c:forEach>
2020-06-08