JSF

2012-03-21 8 views
1

でユーザーloggesが、これは理論上の問題である場合にのみ、私が見てきたすべての例は、例のログの@SessionScopedを使用して、Bean内の ログはセッションに保存されます...セッションでJSF

をオブジェクトを挿入資格情報が正しくない場合でも

ユーザーがログインしていない場合、Beanはセッションに保存されますが、ログインするBean内の "user"オブジェクト自体はnullになります。したがって、isLoggedIn()メソッドを簡単に実装できます。

これは方法ですか?または、資格情報が正しい場合にのみ、Beanをセッションに保存する必要がありますか?

私は、ページ内のログ内のすべての訪問のために、それはセッションBeanは、ユーザーがログインしていない場合でも保存されるようになりますことを考えていた。

答えて

2

手動でExternalContext#getSessionMap()でのセッションで管理されていないBeanを置くことができます。

externalContext.getSessionMap().put("user", user); 

ELの#{user}でご利用いただけます。どちらが最善かは、あなた次第です。マネージドBeanを使用すると、#{user}が決してnullにならないようにすることができます。管理されていないBeanでは、何かにアクセスする前に、#{user}nullでないかどうかを毎回チェックしなければなりません。しかし、不要なセッションの作成を可能な限り延期する必要がある場合は、アンマネージドBeanを使用することが理にかなっています。

+0

ニース!ありがとう、私はセッションの作成を延期する必要はありません。私はちょうどそれがもっと「きれい」かもしれないと思った。 – Dimman