Iniciante em JSF - Dúvida com lista (forEach)

2 respostas
Flasoft

Eu percorro uma lista em uma pagina xhtml com for each… contudo o metodo no managed bean a chamado a cada interação… Isto é correto?

Se isto acontecer… eu vou chamar o service + de um vez… e dependendo o caso isto é importante que não aconteça!

ManagedBean

public List<GeneroBean> getGeneros() { return generoService.getGeneros(); }

xhtml

<c:forEach items="#{menuMB.generos}" var="genero"> <rich:panelMenuItem label="#{genero.descricao}" action="#"> </rich:panelMenuItem> </c:forEach>

2 Respostas

juniorsatanas

eu faço assim, qual o problema ?

&lt;c:forEach items="#{menuMB.generos}" var="genero"&gt;  
    &lt;rich:panelMenuItem label="#{genero.descricao}" action="#"&gt;  
    &lt;/rich:panelMenuItem&gt;  
&lt;/c:forEach&gt;
Flasoft

O problema é que por enquanto minha lista está retornando 15 itens e o método getGeneros() está sendo chamado 15 vezes!

public List<GeneroBean> getGeneros() { return generoService.getGeneros(); }

Como o meu backing bean só está invocando o service ele está indo além do necessário no banco…

Um paliativo seria salvar a lista no próprio backing bean o retorno do service e caso a lista não fosse nula retorna já a retornasse(ultimo resultado do service), só qro saber se isto eh o certo:

public List<GeneroBean> getGeneros() { if (generos == null) generos = menuService.getGeneros(); return generos; }

Criado 2 de janeiro de 2010
Ultima resposta 2 de jan. de 2010
Respostas 2
Participantes 2