使用JSTL forEach循环的varStatus作为ID

Mar*_*k W 100 java jsp jstl el

我想使用来自JSTL forEach循环的计数,但我的代码似乎不起作用.

<c:forEach items="${loopableObject}" var="theObject" varStatus="theCount">
    <div id="divIDNo${theCount}">
    </div>
</c:forEach>
Run Code Online (Sandbox Code Playgroud)

产生

<div id="divIDNojavax.servlet.jsp.jstl.core.LoopTagSupport$1Status@5570e2" >
Run Code Online (Sandbox Code Playgroud)

hig*_*ted 253

varStatus设置的变量是LoopTagStatus对象,而不是int.使用:

<div id="divIDNo${theCount.index}">
Run Code Online (Sandbox Code Playgroud)

澄清:

  • varStatus 从0开始计数
  • LoopTagStatus 从1开始计数

  • `$ {theCount.count}`**总是**从1开始.` $ {theCount.index}`从你设置`begin`属性的任何地方开始.例如`<c:forEach var ="foo"items ="$ {bar}"begin ="5"varStatus ="theCount">` (19认同)

die*_*eke 7

你会使用以下任何一种:

JSTL c:forEach varStatus属性

物业获取者描述

  • current getCurrent()当前迭代循环的项(来自集合).

  • index getIndex()当前迭代循环的从零开始的索引.

  • count getCount()当前迭代循环的从1开始的计数

  • first isFirst()标志,指示当前轮次是否是第一次通过迭代
  • last isLast()标志,指示当前轮次是否是最后一次通过迭代

  • begin getBegin()begin属性的值

  • end getEnd()end属性的值

  • step getStep()step属性的值


Nat*_*han 5

你可以试试这个。类似的结果

 <c:forEach items="${loopableObject}" var="theObject" varStatus="theCount">
    <div id="divIDNo${theCount.count}"></div>
 </c:forEach>
Run Code Online (Sandbox Code Playgroud)