opa!
tenho uma página jsf, nessa página tenho uma lista, como posso iterar essa lista com c:forEach do JSTL?
abraço
opa!
tenho uma página jsf, nessa página tenho uma lista, como posso iterar essa lista com c:forEach do JSTL?
abraço
Olá. Estou com esse mesmo problema.
Estou tentando fazer um rich:tabPanel dinâmico, dependendo das permissões dos usuário para acessar determinadas páginas. Para iterar na lista de tabs, estou utilizando o seguinte código:
<rich:tabPanel>
<c:forEach items="#{userBean.allowedTabs}" var="tab">
<rich:tab>
<f:facet name="label">
<h:outputText value="#{tab.name}" />
</f:facet>
<jsp:import page="#{tab.page}" />
</rich:tab>
</c:forEach>
</rich:tabPanel>
O que acontece nesse caso é que a sentença “#{userBean.allowedTabs}” é reconhecida como a Sting “#{userBean.allowedTabs}”, e não como a lista de elementos contidos no atributo allowedTabs do objeto userBean.
Se eu alterar a sentença para “${userBean.allowedTabs}”, aí sim ele reconhece corretamente a lista de objetos apropriados, entretanto, eu não consigo utilizar o objeto tab definido no atributo var nas tags jsf/richfaces, pois o objeto não é reconhecido.
Procurei alguns posts aqui no fórum e achei um tópico que recomendava utilizar c:set da seguinte maneira:
<rich:tabPanel>
<c:forEach items="${userBean.allowedTabs}" var="_tab">
<c:set var="tab" value="${_tab}" scope="request" />
<rich:tab>
<f:facet name="label">
<h:outputText value="#{tab.name}" />
</f:facet>
<jsp:import page="#{tab.page}" />
</rich:tab>
</c:forEach>
</rich:tabPanel>
Essa abordagem também não funcionou, pois ele define a variável como sendo apenas o último valor da lista.
Eu estou utilizando Tomcar 6, JSF 1.2, RichFaces 3.2.1-GA e JSTL 1.1. Alguém tem alguma idéia ou sujestãopara resolver esse problema?
Grato.
Olá,
JSF e JSTL não combinam, para maioria dos casos trabalhar com estas duas tecnologias só trará dor de cabeça. Caso queria iterar uma lista eu aconselho o uso de componentes como h:dataTable ou ui:repeat (Facelets) ou qualquer outro componente encontrado em alguns conjuntos de componentes como Richfaces ou Myfaces Trinidad ou Tomahawk.
Abraços e boa sorte.