我知道在这个问题上有很多关于SO的问题,但我无法找到解决问题的方法。我正在尝试在JSF 2中使用@ManagedProperty
。我使用了this page中的示例,但我的工作不正常:
@ManagedProperty("#{userSession}")
private UserSession userSession;
public void setUserSession(UserSession userSession) {
this.userSession = userSession;
}
父bean和注入的bean都是会话作用域。两个bean都具有@ManagedBean
属性。没有faces-config.xml声明,没有EJB,没有使用Spring。我从该示例中注意到的一件事是两个bean类都实现了Serializable
。我没有,我不确定这是否有所作为。
当我使用此代码时,当我尝试操作NullPointerException
时,我会收到userSession
。但是,我知道会话存在,因为当我使用@BalusC的findBean
convenience method时,它可以工作。但有一点是,我的代码只有在我在“做东西”的同一方法中调用userSession = findBean("userSession")
时才有效。如果我在bean的构造函数中初始化userSession
,我会得到另一个NPE。有什么想法吗?