Je veux utiliser le décompte 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" >
getIndex()
:)Réponses:
La variable définie par
varStatus
est unLoopTagStatus
objet, pas un int. Utilisation:Clarifier:
${theCount.index}
commence à compter à0
moins que vous n'ayez défini l'begin
attribut${theCount.count}
commence à compter à1
la source
${theCount.count}
commence toujours à 1.${theCount.index}
commence à ce que vous avez défini l'begin
attribut. eg<c:forEach var="foo" items="${bar}" begin="5" varStatus="theCount">
vous utiliseriez l'un de ceux-ci:
Propriétés JSTL c: forEach varStatus
Description de la propriété Getter
current getCurrent () L'élément (de la collection) pour le cycle d'itération en cours.
index getIndex () Index de base zéro pour le cycle d'itération en cours.
count getCount () Le nombre basé sur un pour le cycle d'itération actuel
last isLast () Indicateur indiquant si le tour 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
la source
Vous pouvez essayer ceci. résultat similaire
la source
Cela m'a vraiment aidé à générer dynamiquement des identifiants
showDetailItem
pour le code ci-dessous.si vous exécutez cette ligne
<af:outputText value="#{ttfVs}"/>
imprime ce qui suit:la source
varStatus.count
), mais beaucoup moins lisible. Pourquoi se donner la peine de lire les réponses des autres? ;)