Я хочу получить доступ к объекту bean-компонента @SessionScoped
в другой фасоли, используя @ManagedProperty
. Короче говоря, я хочу получить доступ к свойству name firstBean в secondBean.Невозможно получить доступ к управляемому 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
}
И второй боб:
@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;
}
Когда я запускаю это, я всегда получаю NullPointerException
на System.out.println(firstBean.getName());
в конструкторе второй боб, который, кажется, означает, что мне нужно создать новый экземпляр firstBean
,
Но как ни странно, когда я прокомментировал эту строку, я могу сделать что-то вроде этого без ошибок, а это значит, что firstBean на самом деле является свойством secondBean.
<h:outputText value="#{secondBean.firstBean.name}" />
В чем проблема?