将值设置为ManagedProperty

时间:2017-12-13 16:31:45

标签: jsf managed-property

我正在尝试为我的ManagedProperty设置一个值,但是当我尝试打印时,我得到了null结果。 我想设置Bean类以在我的查询中使用它。 我一直试着设置String,Class,但它总是返回一个null值。 任何人都可以帮助我吗?

@ManagedBean
public class FilialBean extends BaseBean implements Serializable{

private Filial filial;
private List<Filial> filiais;

@ManagedProperty("#{entidadeService}")
private EntidadeService service;


@PostConstruct
public void init(){

    service.setFaces(Filial.class);
    filial = new Filial();
    filiais = (List<Filial>) (List) service.getbasesEntidades();

}

//GETTERS AND SETTERS

}
@ManagedBean(name="entidadeService", eager=true)
@ApplicationScoped
public class EntidadeService implements Serializable{

private List<EntidadeBase> basesEntidades;  
private Class faces;

@PostConstruct
public void init(){

    System.out.println(faces.getSimpleName());
    try{
      EntityManager manager = JPAUtil.getEntityManager();
      Query query = manager.createQuery("SELECT e FROM Filial e WHERE e.ativo = :ativo");
      query.setParameter("ativo", true);
      this.basesEntidades = query.getResultList();
    }
    catch(Exception e){

        e.printStackTrace();
    }
}


public List<EntidadeBase> getbasesEntidades() {
    return basesEntidades;
}

public Class getFaces() {
    return faces;
}

public void setFaces(Class faces) {
    this.faces = faces;
}
}

1 个答案:

答案 0 :(得分:0)

您是否检查过@ManagedBean在两个类中都有相同的包?

我遇到了同样的问题,一个具有null值的属性执行Post Construct方法,这就是问题,一个类有javax.annotation.ManagedBean(CDI)注释,另一个类有javax.faces.bean.ManagedBean(JSF)注释

在我的情况下,我需要两个带有JSF注释的类......