我使用@ManagedBean(请求作用域)作为@ManagedProperty另一个内部@ManagedBean.但是,在使用时bean(一个用作a @ManagedProperty)是未实例化的,因此导致NullPointerException.
我该如何解决这个问题?
您显然正在尝试在父bean的构造函数中访问它.这确实是不可能的.管理的物业在施工后注入.
ParentBean parentBean = new ParentBean(); // Constructor invoked.
parentBean.setChildBean(new ChildBean()); // Managed property set.
Run Code Online (Sandbox Code Playgroud)
最早的接入点是一种@PostConstruct方法.它是在构造和托管属性(以及所有其他依赖性@EJB)注入之后调用的.
@ManagedProperty("#{childBean}")
private ChildBean childBean;
@PostConstruct
public void init() {
System.out.println(childBean); // Not null.
}
Run Code Online (Sandbox Code Playgroud)