web-dev-qa-db-fra.com

Utiliser le varStatus de la boucle JSTL forEach comme identifiant

Je veux utiliser le nombre de la boucle JSTL forEach, mais mon code ne semble pas fonctionner.

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

produit

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

La variable définie par varStatus est un LoopTagStatus , pas un int. Utilisation:

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

Clarifier:

  • ${theCount.index} commence à compter à 0 à moins que vous n'ayez défini l'attribut begin
  • ${theCount.count} commence à compter à 1
252
highlycaffeinated

vous utiliseriez n'importe lequel de ceux-ci:

JSTL c: forEach, propriétés varStatus

Propriété Getter Description

  • current getCurrent () L'élément (de la collection) pour la série d'itérations en cours.

  • index getIndex () Index de base zéro pour la série d'itérations en cours.

  • count getCount () Le nombre basé sur une base pour la série d'itérations en cours

  • first isFirst () Indicateur signalant si le round actuel est le premier passage de l'itération.
  • last isLast () Indicateur signalant si le round en cours est le dernier passage de l'itération.

  • begin getBegin () La valeur de l'attribut begin

  • end getEnd () La valeur de l'attribut end

  • step getStep () La valeur de l'attribut step

5

Vous pouvez essayer ça. résultat similaire

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

Cela m'a vraiment aidé à générer dynamiquement les identifiants de showDetailItem pour le code ci-dessous.

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

si vous exécutez cette ligne <af:outputText value="#{ttfVs}"/> affiche le texte ci-dessous:

{index = 3, compte = 4, dernier = faux, premier = faux, fin = 8, étape = 1, début = 0}

1
jyoti pani