使用JSTL forEach循环的varStatus作为ID

我想从JSTL的forEach循环使用计数,但我的代码似乎没有工作。

<c:forEach items="${loopableObject}" var="theObject" varStatus="theCount"> <div id="divIDNo${theCount}"> </div> </c:forEach> 

产生

 <div id="divIDNojavax.servlet.jsp.jstl.core.LoopTagSupport$1Status@5570e2" > 

varStatus设置的variables是一个LoopTagStatus对象,而不是一个int。 使用:

 <div id="divIDNo${theCount.index}"> 

澄清:

  • ${theCount.index}从0开始计数
  • ${theCount.count}从1开始计数

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

  <c:forEach items="${loopableObject}" var="theObject" varStatus="theCount"> <div id="divIDNo${theCount.count}"></div> </c:forEach> 

它真的帮助我dynamic生成以下代码的showDetailItem id。

 <af:forEach id="fe1" items="#{viewScope.bean.tranTypeList}" var="ttf" varStatus="ttfVs" > <af:showDetailItem id ="divIDNo${ttfVs.count}" text="#{ttf.trandef}"......> 

如果你执行这一行<af:outputText value="#{ttfVs}"/>打印如下:

{index = 3,count = 4,last = false,first = false,end = 8,step = 1,begin = 0}

你会使用任何这些:

JSTL c:forEach varStatus属性

属性获取器描述

  • current getCurrent()当前迭代的一个项目(来自集合)。

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

  • count getCount()当前迭代的一个基于计数

  • 第一个是First()表示当前回合是否是第一次通过迭代的标志
  • last isLast()指示当前回合是否是最后一次通过迭代的标志

  • begin getBegin()begin属性的值

  • 结束getEnd()结束属性的值

  • step getStep()step属性的值