Iterar lista de "Objetos", qual a melhor forma usando JSF?

4 respostas
vanilton.coelho

Pessoal, percebo que venho tentando bastante dificuldade em fazer uma iteração de alguns elementos no meu projeto utilizando JSF, primeiro, muitas vezes não posso recorrer ao velho datatable ou datalist, geralmente é um conjunto de dados e fico como unica saida, dependendo do <c:forEach>, mas utilizando o mesmo, venho tendo certos problemas de as variaveis serem reconhecidas pelas tags JSF dentro da iteração, como eu resolveria isso pessoal ??? como vocês utilizam quando querem iterar uma lista e que não seja uma tabela, como o datatable???

4 Respostas

rponte

Olá alpharagga,

Dificilmente se faz necessário iterar uma lista de objetos “na mão” para renderizar algo ao usuário com JSF, na maioria dos casos se consegue isso através dos próprios componentes, contudo, tente o componente ui:repeat do Facelets caso você esteja utilizando-o no teu projeto.
https://facelets.dev.java.net/nonav/docs/dev/docbook.html#template-repeat

O que você está tetando fazer exatamente? Talvez possamos chegar a uma solução melhor, ou não :slight_smile:

vanilton.coelho

Cara, um exemplo é esse código, tenho que iterar todo esse trecho no meu JSP, vamos admitir que eu não use ou não possa usar facelets:

&lt;c:forEach items="#{meuManagedBean.produtos}" var="produto"&gt;
  <li >
    &lt;div&gt;
      &lt;h:outputLink title="#{produto.titulo}" value="produto.jsf?produtoId=#{produto.id}"&gt;
        &lt;h:graphicImage value="#{produto.foto.nome}" alt="#{produto.titulo}" /&gt;
      &lt;/h:outputLink&gt;
      <br />
      &lt;span&gt;Preço: 
        <b>
          &lt;h:outputText value="#{produto.preco}"&gt;
            &lt;f:convertNumber pattern="R$ ###,##0.00" /&gt;
          &lt;/h:outputText&gt;
        </b>
      &lt;/span&gt;
    &lt;/div&gt;
    &lt;h:outputLink title="#{produto.titulo}" value="produto.jsf?produtoId=#{produto.id}"&gt;
      <b>&lt;h:outputText value="#{produto.titulo}"/&gt;</b>
    &lt;/h:outputLink&gt;
    <br />
    <a >
      <img    />
    </a>
  </li>
&lt;/c:forEach&gt;

qual seria a solução ideal neste caso???? sem usar esse forEach ?????

Guilherme_Gomes

Problema que muitos ja passaram ^^

Bom, JSF não possui tal iteração… Então, você coloca aí um richfaces ou algum outro que tenha o que você quer. Ou você usa JSTL mesmo pra iterar e ainda, se quiser, pode criar um CustomComponent seu para o JSF e usa-lo na página.

pintasart

Podiam dar uma ajuda aqui sff?

http://www.guj.com.br/posts/list/125629.java

Criado 18 de agosto de 2008
Ultima resposta 6 de mai. de 2009
Respostas 4
Participantes 4