JSF2, @ManagedProperty

1 resposta
ATEN

E ai pessoal, estou usando jsf2 e injetando um bean no outro com a anotação @ManagedProperty.
Percebi que ao utilizá-la no construtor da classe, esta, por sua vez, não é instanciada, já contornei o problema, mas gostaria de saber se alguém já passou pelo problema ou o conseguiu uma solução para tal comportamento. Ou, simplesmente, não é possível fazer isso.

Segue um exemplo do que eu estou falando

@ManagedBean(name="adminBean")
@ViewScoped
public class AdminBean implements Serializable{

	private static final long serialVersionUID = 1L;
	
	private int media;
	
	@ManagedProperty(value = "aluno") //injeção do bean - session bean
	private Aluno aluno;
	
	public AdminBean(){
		this.media = calculaMedia(aluno.getNotas()); //Ao utilizar aqui o Aluno, a classe não instância.
	}

         //getters e setters

Caso queira utilizar o aluno em algum outro método que não seja o construtor, não ocorrerá erro, alguem sabe pq isso ocorre?
[]s

1 Resposta

Diego_Adriano

Então cara, vc terá que injetar de outra forma, altere o Escopo pra Request e verá que irá funcionar da forma que esta fazendo, sempre tive esse problema ao utilizar o EntityManger, hj utilizo dessa maneira:

public EntityManager getEntityManager() { ELContext elContext = FacesContext.getCurrentInstance().getELContext(); return entityManager = (EntityManager) FacesContext.getCurrentInstance().getApplication(). getELResolver().getValue(elContext, null, "entityManager"); }

Criado 6 de agosto de 2012
Ultima resposta 6 de ago. de 2012
Respostas 1
Participantes 2