5

如何将以下for循环转换为jstl foreach

for(int i = 0 ; i<=21; i+=3){
  // print foo
}

这是我到目前为止所拥有的:

<c:forEach varStatus="loop" begin="0" end="21">
  // display foo
</c:forEach>
4

4 回答 4

9

根据 jstl,应该尝试:

<c:forEach begin="0" end="21" step="3" varStatus="loop">
    <c:out value="${loop.count}"/>
</c:forEach>
于 2013-11-05T11:44:02.553 回答
3

您可以使用 jstl 步骤属性

<c:forEach varStatus="loop" begin="0" end="21" step="3">
  // display foo
</c:forEach>

JSTL 教程

于 2013-11-05T11:45:08.120 回答
-1
`<c:forEach
items="<object>"
begin="<int>"
end="<int>"
step="<int>"
var="<string>"
varStatus="<string>">
</c:forEach>`

items -- 要在循环中迭代的项目集合

begin -- 迭代的开始索引。迭代从该属性值中提到的值开始。(如果指定了项目)第一个项目的索引为 0。在您的情况下 begin="0"

end -- 迭代的结束索引。迭代在此属性值(包括)中提到的值处停止。(如果指定了项目)。在您的情况下,begin="49"。

step - 此属性中指定的迭代的步长值。在您的情况下 step="3"。

var -- 在迭代中保存当前项的作用域变量的名称。此变量的类型取决于迭代中的项目并具有嵌套可见性。

varStatus -- 保存当前迭代循环状态的作用域变量的名称。此变量的类型为 javax.servlet.jsp.jstl.core.LoopTagStatus 并具有嵌套可见性。

增加 3 --> step="3"

在 49 上结束循环 --> end="49"

关联

于 2016-09-05T17:24:55.710 回答
-2

此外,如果您想使用该值本身,您可以使用 'current' 属性。

<c:forEach begin="0" end="2" varStatus="position">
   ${position.current}
</c:forEach>

这将给出:

0 1 2

当您使用从零开始的数组时,这很有用。

于 2017-10-27T10:31:24.467 回答