使用 JSTL forEach 循环的 varStatus 作为 ID

发布于 2024-11-19 06:45:10 字数 347 浏览 2 评论 0原文

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

I want to use the count from the JSTL forEach loop, but my code doesnt seem to work.

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

produces

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

喜爱皱眉﹌ 2024-11-26 06:45:10

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

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

澄清一下:

  • ${theCount.index}0 开始计数,除非您设置了 begin 属性
  • ${theCount .count}1 开始计数

The variable set by varStatus is a LoopTagStatus object, not an int. Use:

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

To clarify:

  • ${theCount.index} starts counting at 0 unless you've set the begin attribute
  • ${theCount.count} starts counting at 1
久而酒知 2024-11-26 06:45:10

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

JSTL c:forEach varStatus 属性

属性 Getter 描述

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

  • index getIndex() 当前轮的从零开始的索引

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

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

  • begin getBegin() 开始属性的值

  • end getEnd() 结束属性的值

  • 步骤getStep() 步骤属性的值

you'd use any of these:

JSTL c:forEach varStatus properties

Property Getter Description

  • current getCurrent() The item (from the collection) for the current
    round of iteration.

  • index getIndex() The zero-based index for the current round of
    iteration.

  • count getCount() The one-based count for the current round of iteration

  • first isFirst() Flag indicating whether the current round
    is the first pass through the iteration
  • last isLast() Flag indicating whether the current round is the last pass through the iteration

  • begin getBegin() The value of the begin attribute

  • end getEnd() The value of the end attribute

  • step getStep() The value of the step attribute

初熏 2024-11-26 06:45:10

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

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

You can try this. similar result

 <c:forEach items="${loopableObject}" var="theObject" varStatus="theCount">
    <div id="divIDNo${theCount.count}"></div>
 </c:forEach>
盗心人 2024-11-26 06:45:10

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

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

如果执行此行 会打印以下内容:

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

Its really helped me to dynamically generate ids of showDetailItem for the below code.

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

if you execute this line <af:outputText value="#{ttfVs}"/> prints the below:

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文