我正在尝试在另一个Managed bean中获取会话范围的bean数据。当我这样做时,该值将变为null并给出java.lang.NullPointerException错误。我是JSF的新手,所以请记住,我可能会遗漏简单的事情。
这是SessionScoped Bean
@ManagedBean
@SessionScoped
public class UserSessionBean {
private superProcessId;
//getter setter and other code
}
以下是我试图获取此数据的Managed Bean
@ManagedBean
public class AddProcessBean {
@ManagedProperty(value="#{UserSessionBean}")
private UserSessionBean sessionData;
//Getter Setter for sessionData
public UserSessionBean getSessionData() {
return sessionData;
}
public void setSessionData(UserSessionBean sessionData) {
this.sessionData = sessionData;
}
public void addAction() {
System.out.println(getSessionData().getSuperProcessId());
}
}
答案 0 :(得分:11)
@ManagedProperty
你的价值不高。使用:
@ManagedProperty(value="#{userSessionBean}")
bean的默认名称与第一个字母较低的类名相同。此托管属性的bean的范围也应该是session或更低(view,request)。