Quiero usar el recuento del bucle JSTL forEach, pero mi código no parece funcionar.
<c:forEach items="${loopableObject}" var="theObject" varStatus="theCount">
<div id="divIDNo${theCount}">
</div>
</c:forEach>
produce
<div id="divIDNojavax.servlet.jsp.jstl.core.LoopTagSupport$1Status@5570e2" >
getIndex()
:)Respuestas:
La variable establecida por
varStatus
es unLoopTagStatus
objeto, no un int. Utilizar:Para aclarar:
${theCount.index}
comienza a contar en a0
menos que haya establecido elbegin
atributo${theCount.count}
comienza a contar en1
fuente
${theCount.count}
siempre comienza en 1.${theCount.index}
comienza en lo que haya establecido para elbegin
atributo. por ejemplo<c:forEach var="foo" items="${bar}" begin="5" varStatus="theCount">
usarías cualquiera de estos:
JSTL c: propiedades de forEach varStatus
Descripción del Getter de propiedad
current getCurrent () El elemento (de la colección) para la ronda actual de iteración.
index getIndex () El índice de base cero para la ronda actual de iteración.
count getCount () El recuento basado en uno para la ronda actual de iteración
last isLast () Bandera que indica si la ronda actual es el último paso a través de la iteración
begin getBegin () El valor del atributo begin
end getEnd () El valor del atributo end
step getStep () El valor del atributo step
fuente
Puedes probar esto. resultado similar
fuente
Realmente me ayudó a generar identificadores dinámicamente
showDetailItem
para el siguiente código.si ejecuta esta línea
<af:outputText value="#{ttfVs}"/>
imprime lo siguiente:fuente
varStatus.count
), solo que mucho menos legible. ¿Por qué molestarse en leer las respuestas de otras personas? ;)