Eu quero usar a contagem do loop JSTL forEach, mas meu código não parece funcionar.
<c:forEach items="${loopableObject}" var="theObject" varStatus="theCount">
<div id="divIDNo${theCount}">
</div>
</c:forEach>
produz
<div id="divIDNojavax.servlet.jsp.jstl.core.LoopTagSupport$1Status@5570e2" >
getIndex()
:)Respostas:
A variável definida por
varStatus
é umLoopTagStatus
objeto, não um int. Usar:Esclarecer:
${theCount.index}
começa a contar a0
menos que você tenha definido obegin
atributo${theCount.count}
começa a contar em1
fonte
${theCount.count}
sempre começa em 1.${theCount.index}
começa em tudo o que você definiu para obegin
atributo. por exemplo<c:forEach var="foo" items="${bar}" begin="5" varStatus="theCount">
você usaria qualquer um destes:
JSTL c: propriedades de forEach varStatus
Descrição da propriedade Getter
current getCurrent () O item (da coleção) para a rodada atual de iteração.
index getIndex () O índice baseado em zero para a rodada atual de iteração.
count getCount () A contagem baseada em um para a rodada atual de iteração
last isLast () Sinalizador que indica se a rodada atual é a última passagem pela iteração
begin getBegin () O valor do atributo begin
end getEnd () O valor do atributo end
step getStep () O valor do atributo step
fonte
Você pode tentar isso. resultado semelhante
fonte
Realmente me ajudou a gerar ids dinamicamente
showDetailItem
para o código abaixo.se você executar esta linha
<af:outputText value="#{ttfVs}"/>
imprime o seguinte:fonte
varStatus.count
), apenas muito menos legível. Por que se preocupar em ler as respostas de outras pessoas? ;)