0

我正在尝试为我的 ManagedProperty 设置一个值,但是当我尝试打印它时得到空结果。我想设置 Bean 类以在我的查询中使用它。我一直在尝试设置 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;
}
}
4

1 回答 1

0

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

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

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

于 2018-01-25T15:33:33.103 回答