Lista com CDI

1 resposta
T

Tenho um “@Named bean” com escopo @RequestScoped com um método getList() que retornar a lista de registros de uma tabela.
Esta lista é utilizada em várias telas através de uma combo, e deve ser filtrada com dados da camada de visão(ex. CepView, BairroView) com escopo @Conversation. Para utilizar os dados destas classes, tenho que injetar no bean da lista. Isso não fica pesado não? Pois a lista vai usar só uma View(tela atual que sendo utilizada) e as outras vão tá na memórias por causa do inject. Tem uma forma melhor de se fazer?

@Named
@RequestScoped
public MucicipioList {

@Inject CepView uv;
@Inject BairroView ev;
public List<?> getList(){
...
//filtrar
//municipio.estado = cepView.estado; 
//municipio.estado = BairroView.estado; 
...
}
}

1 Resposta

T

Vou explicar com outro exemplo. :slight_smile:

Em várias páginas preciso mostrar uma grid com uma lista de usuários.
A depender da página a grid mostra uma determinada lista de usuários.
Fiz um bean(UsuarioGrid/ConversatioScoped) que retorna essa lista.
O problema é que os filtros da grid usam(injetam) os “managed bean” que fazem referência as páginas que tem a grid. (ex. MatriculaView).
Ao injetar, uma instância é criada e fica amarrada a grid(conversação atual).

Qual a melhor forma de se implementar estes tipos de listas?
Criar uma para cada página?

uso jsf 2.1, cdi weld 1.1.14.Final, primefaces 4, tomcat

Criado 14 de setembro de 2013
Ultima resposta 4 de out. de 2013
Respostas 1
Participantes 1