使用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属性的值