我想使用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" >
答案 0 :(得分:250)
由varStatus
设置的变量是LoopTagStatus
对象,而不是int。使用:
<div id="divIDNo${theCount.index}">
澄清:
${theCount.index}
从0
开始计算,除非您设置了begin
属性${theCount.count}
从1
答案 1 :(得分:5)
你会使用以下任何一种:
JSTL c:forEach varStatus properties
属性获取者描述
current getCurrent()当前的项目(来自集合) 一轮迭代。
index getIndex()当前轮次的从零开始的索引 迭代。
count getCount()当前迭代循环的从1开始的计数
last isLast()标志,指示当前回合是否是迭代的最后一次传递
begin getBegin()begin属性的值
end getEnd()结束属性的值
step getStep()步骤属性的值
答案 2 :(得分:3)
你可以试试这个。类似的结果
<c:forEach items="${loopableObject}" var="theObject" varStatus="theCount">
<div id="divIDNo${theCount.count}"></div>
</c:forEach>
答案 3 :(得分:1)
它真的帮助我为下面的代码动态生成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}