この正確な問題に関してSOにたくさんの質問があることは知っていますが、問題の解決策が見つかりませんでした. 私は@ManagedProperty
JSF 2 でa を使用しようとしています。このページの例を使用しましたが、私のものは機能しません:
@ManagedProperty("#{userSession}")
private UserSession userSession;
public void setUserSession(UserSession userSession) {
this.userSession = userSession;
}
親 Bean と注入された Bean の両方がセッション スコープです。両方の Bean に@ManagedBean
属性があります。faces-config.xml 宣言、EJB、Spring の使用はありません。この例から気づいたことの 1 つは、両方の Bean クラスが を実装していることSerializable
です。私はそうではありません。それが違いを生んでいるかどうかはわかりません。
このコードを使用するNullPointerException
と、 を操作しようとすると が発生しuserSession
ます。ただし、 @BalusC のfindBean
便利なメソッドを使用すると機能するため、セッションが存在することはわかっています。userSession = findBean("userSession")
ただし、これに関する1つのことは、「何かをしている」同じメソッド内で呼び出した場合にのみ、私のコードが機能することです。userSession
Bean のコンストラクターで初期化すると、別の NPE が得られます。何か案は?