Java JSTL c:forEach,递减数循环不可能?
我想打印递减数,如:Java JSTL c:forEach,递减数循环不可能?,java,jsp,foreach,jstl,Java,Jsp,Foreach,Jstl,我想打印递减数,如: <c:forEach var="i" begin="10" end="0" step="-1"> ... ${i} ... </c:forEach> ... ${i} 。。。 然后我得到了jsp异常: javax.servlet.jsp.JspTagException: 'step' <= 0 javax.servlet.jsp.jstl.core.LoopTagSupport.validateStep(LoopTagSu
<c:forEach var="i" begin="10" end="0" step="-1">
... ${i} ...
</c:forEach>
... ${i} 。。。
然后我得到了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)
....
javax.servlet.jsp.JspTagException:'step'我不确定另一个问题的回答者是如何让它工作的,但我不能让它在这里与参考JSTL实现一起工作
无论如何,您可以通过以下方式达到要求:
<c:forEach var="i" begin="0" end="10" step="1">
... ${10 - i} ...
</c:forEach>
不使用var
属性的可能解决方案:
<c:forEach begin="0" end="10" varStatus="loop">
${loop.end - loop.count + 1}
</c:forEach>
${loop.end-loop.count+1}
请注意,step
也被省略,因为它的默认值是1
对,规范说明:如果指定,step必须>=1,那么其他问题实际上是关于如何向后循环集合的。我更正了我的答案,所以其他部分也是正确的。你没什么问题。我的回答有误。
<c:forEach begin="0" end="10" varStatus="loop">
${loop.end - loop.count + 1}
</c:forEach>