1
我想使用@ManagedProperty
訪問另一個bean中的@SessionScoped
bean的屬性。總之,我想訪問secondBean中firstBean的name屬性。無法訪問另一個受管bean的託管bean的屬性
@ManagedBean
@SessionScoped
public class FirstBean implements Serializable{
private String name;
//...other attributes
//...constructor
public String getSelectedModel() {
return selectedModel;
}
public void setSelectedModel(String selectedModel) {
this.selectedModel = selectedModel;
}
//other getters&setters
}
而第二個bean:
@ManagedBean
@SessionScoped
public class SecondBean implements Serializable{
@ManagedProperty(value="#{firstBean}")
private FirstBean firstBean
public SecondBean() {
System.out.println(firstBean.getName());
}
public IndexBean getFirstBean() {
return firstBean;
}
public void setFirstBean(FirstBean firstBean) {
this.firstBean = firstBean;
}
當我運行此,我總是在第二個bean,這似乎意味着,我需要創建的firstBean
一個新實例的構造函數得到NullPointerException
上System.out.println(firstBean.getName());
。
但奇怪的是,當我註釋掉這一行時,我可以這樣做,沒有錯誤,這意味着firstBean實際上是secondBean的一個屬性。
<h:outputText value="#{secondBean.firstBean.name}" />
這裏有什麼問題?