Use JSTL forEach loop's varStatus as an ID

后端 未结 4 1661
悲哀的现实
悲哀的现实 2020-12-07 11:49

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



        
相关标签:
4条回答
  • 2020-12-07 11:56

    You can try this. similar result

     <c:forEach items="${loopableObject}" var="theObject" varStatus="theCount">
        <div id="divIDNo${theCount.count}"></div>
     </c:forEach>
    
    0 讨论(0)
  • 2020-12-07 12:10

    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

    0 讨论(0)
  • 2020-12-07 12:10

    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}

    0 讨论(0)
  • 2020-12-07 12:21

    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
    0 讨论(0)
提交回复
热议问题