8

我正在尝试在另一个托管 bean 中获取会话范围的 bean 数据。当我这样做时,该值将变为 null 并给出 java.lang.NullPointerException 错误。我是 JSF 的新手,所以请记住,我可能会遗漏一些简单的东西。

这是 SessionScoped Bean

    @ManagedBean
    @SessionScoped

    public class UserSessionBean {
      private superProcessId;

      //getter setter and other code
    }

这是我正在尝试获取此数据的托管 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());
  }
}
4

1 回答 1

11

你的价值不高@ManagedProperty。采用:

@ManagedProperty(value="#{userSessionBean}")

bean 的默认名称与具有较低首字母的类名称相同。托管属性的 bean 的范围也应该是会话或更低(视图、请求)。

于 2013-03-07T12:27:54.107 回答