Ich möchte die Anzahl aus der JSTL forEach-Schleife verwenden, aber mein Code scheint nicht zu funktionieren.
<c:forEach items="${loopableObject}" var="theObject" varStatus="theCount">
<div id="divIDNo${theCount}">
</div>
</c:forEach>
produziert
<div id="divIDNojavax.servlet.jsp.jstl.core.LoopTagSupport$1Status@5570e2" >
getIndex()
:)Antworten:
Die von festgelegte Variable
varStatus
ist einLoopTagStatus
Objekt, kein int. Verwenden:Zu klären:
${theCount.index}
beginnt zu zählen, es0
sei denn, Sie haben dasbegin
Attribut festgelegt${theCount.count}
beginnt bei zu zählen1
quelle
${theCount.count}
beginnt immer bei 1.${theCount.index}
beginnt bei allem, auf das Sie dasbegin
Attribut gesetzt haben. zB<c:forEach var="foo" items="${bar}" begin="5" varStatus="theCount">
Sie würden eines dieser verwenden:
JSTL c: Für jede varStatus-Eigenschaft
Property Getter Beschreibung
current getCurrent () Das Element (aus der Sammlung) für die aktuelle Iterationsrunde.
index getIndex () Der auf Null basierende Index für die aktuelle Iterationsrunde.
count getCount () Die einbasierte Zählung für die aktuelle Iterationsrunde
last isLast () Flag, das angibt, ob die aktuelle Runde der letzte Durchgang durch die Iteration ist
begin getBegin () Der Wert des Attributs begin
end getEnd () Der Wert des end-Attributs
step getStep () Der Wert des step-Attributs
quelle
Sie können dies versuchen. ähnliches Ergebnis
quelle
Es hat mir wirklich geholfen, IDs
showDetailItem
für den folgenden Code dynamisch zu generieren .Wenn Sie diese Zeile ausführen, wird
<af:outputText value="#{ttfVs}"/>
Folgendes gedruckt:quelle
varStatus.count
), nur viel weniger lesbar. Warum sich die Mühe machen, die Antworten anderer Leute zu lesen? ;)