1
我在另一個@ManagedBean
內使用@ManagedBean
(請求作用域)作爲@ManagedProperty
。然而,在使用時該bean(一個用作@ManagedProperty
)未被實例化,因此導致NullPointerException
。在使用另一個ManagedBean之前實例化ManagedBean(聲明爲@ManagedProperty)
我該如何解決這個問題?
我在另一個@ManagedBean
內使用@ManagedBean
(請求作用域)作爲@ManagedProperty
。然而,在使用時該bean(一個用作@ManagedProperty
)未被實例化,因此導致NullPointerException
。在使用另一個ManagedBean之前實例化ManagedBean(聲明爲@ManagedProperty)
我該如何解決這個問題?
你顯然試圖在父bean的構造函數中訪問它。這確實不可能。管理的屬性在施工後注入。
ParentBean parentBean = new ParentBean(); // Constructor invoked.
parentBean.setChildBean(new ChildBean()); // Managed property set.
最早的接入點是一個@PostConstruct
方法。它在施工後被調用和管理的財產(以及所有其他依賴如@EJB
)注入。
@ManagedProperty("#{childBean}")
private ChildBean childBean;
@PostConstruct
public void init() {
System.out.println(childBean); // Not null.
}