使用 JSTL forEach 循环的 varStatus 作为 ID

Posted

技术标签:

【中文标题】使用 JSTL forEach 循环的 varStatus 作为 ID【英文标题】:Use JSTL forEach loop's varStatus as an ID 【发布时间】:2011-09-29 20:29:32 【问题描述】:

我想使用 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" >

【问题讨论】:

这是类的 javadoc:download.oracle.com/javaee/6/api/javax/servlet/jsp/jstl/core/… 看看它提供了哪些 getter 方法。是的,其中有一个getIndex() :) 【参考方案1】:

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

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

澄清一下:

$theCount.index0 开始计数,除非您设置了 begin 属性 $theCount.count1 开始计数

【讨论】:

$theCount.count always 从 1 开始。$theCount.index 从您设置的 begin 属性开始。例如&lt;c:forEach var="foo" items="$bar" begin="5" varStatus="theCount"&gt;【参考方案2】:

您可以使用以下任何一种:

JSTL c:forEach varStatus 属性

属性获取器说明

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

index getIndex() 本轮从零开始的索引 迭代。

count getCount() 本轮迭代的从一开始的计数

first isFirst() 标志是否当前轮 是第一次通过迭代

last isLast() 指示当前轮次是否为最后一次迭代的标志

begin getBegin()开始属性的值

end getEnd() end 属性的值

step getStep() step属性的值

【讨论】:

【参考方案3】:

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

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

【讨论】:

【参考方案4】:

它确实帮助我为以下代码动态生成showDetailItem 的ID。

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

如果你执行这行&lt;af:outputText value="#ttfVs"/&gt; 会打印以下内容:

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

【讨论】:

@HenryKeiter 这里有一个真正的答案。错误的格式只是隐藏了所有的 html,直到我修复它。 这提供了与 3 年前已经提供的完全相同的答案(使用 varStatus.count),只是可读性要低得多。为什么要阅读其他人的答案? ;)

以上是关于使用 JSTL forEach 循环的 varStatus 作为 ID的主要内容,如果未能解决你的问题,请参考以下文章

jstl foreach标签

jstl表达式的foreach标签只执行循环不显示取出的值

如何从jstl中的foreach循环中获取索引值

JSTL--JSTL表达式:c:forEach,varstatus/begin end/循环控制标签--drp215

JSTL自定义标签 实现forEach循环支持集合.数组

JSTL标签之c:foreach,c:if标签小结