Установите значение для ManagedProperty
Я пытаюсь установить значение для моего ManagedProperty, но я получаю нулевой результат, когда пытаюсь напечатать это. Я хотел бы установить класс Бина, чтобы использовать его в своем запросе. Я пытался установить String, Class, но все время он возвращал нулевое значение. Может кто-нибудь мне помочь?
@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 ответ
Вы проверяли, что @ManagedBean имеет одинаковый пакет в обоих классах?
Я столкнулся с той же проблемой: свойство с нулевым значением выполняет метод Post Construct, и это проблема, у одного класса была аннотация javax.annotation.ManagedBean (CDI), а у другого - javax.faces.bean.ManagedBean (JSF).
В моем случае мне нужны были оба класса с аннотациями JSF...