Olá amigo, estava desenvolvendo uma aplicação com o primefaces 3.4 e a implementação do JSF -> Apache MyFaces.
Ao começar um novo projeto, aceitei as bibliotecas que o JBoss Tools me deu sobre o JSF -> Mojarra.
Notei um comportamento muito sombrio ^_^, ao migrar para o Mojarra notei que o meu ManagedBean fazia tipo 8 consultas para popular um dataTable, seja ele do Primefaces ou do próprio JSF.
Testei com o datatable do Richfaces e deu na mesma.
Alguém conheceria uma forma de explicar porque aconteceu essa variação? Ou o que está acontecendo não é pela mudança de minha implementação do JSF.
Olá, você deve estar populando a lista da tabela com o método acessor (get/set) da lista. Desta forma ele passará varias vezes por estes métodos.
O ideal é você criar um método “populaLista” e chamar uma única vez e não usar os (get/set) para nada além de seus objetivos, que é ter uma forma de acessar uma propriedade de uma classe.
Até onde eu sei o ciclo de vida é o mesmo para qualquer implementação JSF.
[quote=tirq]O ideal é você criar um método “populaLista” e chamar uma única vez e não usar os (get/set) para nada além de seus objetivos, que é ter uma forma de acessar uma propriedade de uma classe.
[/quote]
Esse é um comportamento/bug que até hj ninguem entende muito bem pq ocorre,o que vc pode fazer é carregar a lista condicionalmente:
public void getLista(){
if(lista==null) lista = carregaLista();
}
Opa! Da forma como o raf4ever, também vai funcionar, mas no meu ponto de vista get/set não deve ser nada mais que uma forma de busca a propriedade do método.
Mas concordo que irá funcionar das duas formas.