RESOLVIDO - JSF 2.0- Pegar atributo de um Managed Bean estando em outro Managed Bean em JSF 2.0

5 respostas
C

Olá pessoal,

Vou exemplificar uma situação: Vamos supor que eu tenha um ManagedBean chamado UsuarioBean onde um de seus atributos é da Classe Usuario (atributo usuario), onde ficará guardado o usuario quando o login for realizado com sucesso. Supondo que eu tenha uma classe PedidoBean(ManagedBean) que controla os meus pedidos realizados e que eu queira gravar o usuario que criou o pedido, precisando portanto pegar o atributo usuario do meu ManagedBean UsuarioBean. Para eu pegar o usuario guardado no managedBean Usuariobean eu fazia em JSF 1.2 da seguinte forma:

FacesContext facesContext = FacesContext.getCurrentInstance();

ELContext elContext = facesContext.getELContext();

UsuarioBean bean = (UsuarioBean) facesContext.getApplication().getELResolver().getValue(elContext, null, “usuarioBean”);

this.usuario = bean.getUsuario();

Em JSF 2.0 é diferente ou eu ainda tenho que fazer isso para pegar um ManagedBean: UsuarioBean bean = (UsuarioBean) facesContext.getApplication().getELResolver().getValue(elContext, null, “usuarioBean”);

5 Respostas

R

Voce pode utilizar anotações como esta, no pedidoBean coloque

@ManagedProperty(value="#{usuarioBean}")
private UsuarioBean usuarioBean;

Porém a classe que possui a anotacao (no caso o pedidoBean) tem que ser de um escopo menor ou igual ao da classe que esta sendo incluida (no caso usuarioBean)

C

Valeu Rafael, isso deixa o código mais limpo, evitando aquele catatau de códigos que eu estava utilizando.

Valeu!!!

L

Pessoal, melhorem a resposta, não entendi muito bem. Como ficaria o codigo nos managebean ?

L

Bom, consegui tirar minhas dúvidas no blog http://douglashiura.blogspot.com/2010/07/jsf-2-injecao-de-valor-para-atributo.html. Espere que ajude mais pessoas.

D

http://douglashiura.blogspot.com.br/2010/07/jsf-2-injecao-de-valor-para-atributo.html

Criado 31 de maio de 2010
Ultima resposta 1 de abr. de 2012
Respostas 5
Participantes 4