当前位置: 首页 > 面试题库 >

JSTL c:forEach,增量数循环不可能吗?

宗政安歌
2023-03-14
问题内容

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

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

我怎么了


问题答案:

我不确定其他问题的回答者如何使其起作用,但是我无法在参考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>


 类似资料:
  • 问题内容: 我有以下简单脚本,在其中运行循环并希望维护。我无法弄清楚为什么计数器没有更新。是由于创建了subshel​​l导致的吗?我该如何解决呢? 问题答案: 首先,您没有增加计数器。更改成或将增加它。 其次,在您推测时将子shell变量反向传播给被调用者比较困难。子shell中的变量在子shell外部不可用。这些是子进程本地的变量。 解决此问题的一种方法是使用临时文件存储中间值:

  • 问题内容: 我正在做一些有关Java的研究,发现这很令人困惑: 这是永无止境的循环! 有人很好地解释了为什么会发生这种事情吗? 问题答案: 上面的循环与以下内容基本相同:- 3 次你的一部分声明- ,被评估为: - 您需要从此处删除分配,以使其起作用:- (根据评论的OP请求) 的行为:- 就注释中指定的问题而言,以下表达式的结果:- 获得如下:- 让我们标记第二条语句的不同部分:- 现在,首先将

  • 问题内容: 如何从内部循环增加外部迭代器? 更准确地说: 我正进入(状态 , 但是我想要 上面是我想要实现的简化想法。 这是我的Java代码: 问题答案: 似乎您想使用范围功能的step参数。从文档: range(start,stop [,step])这是创建包含算术级数的列表的通用功能。它最常用于for循环中。参数必须是纯整数。如果省略了step参数,则默认值为1。如果省略了start参数,则默

  • 问题内容: 我不明白为什么这个职位增加方程不增加。我以为在+=操作之后,该值将增加1,然后围绕i的第二次将具有1值。但是输出是一个零零的无限循环。有谁能解释为什么“ i”不增加。 问题答案: @ njzk2的答案是正确的,但指出正确的 原因 很有用。 还有其他可能性-例如,为什么Java在分配后不执行postincrement运算符?(答案:因为那不是Java语言设计者选择的) Java语言规范第

  • 如何在Swift3中编写以下内容? 这是我自己的尝试

  • 我试图做一个循环来添加10个项目,但是只添加一个数字为10的项目。 我做错了什么?