2012-03-29 9 views
0

私はJSFセッションスコープBeanを持っており、そのBeanに現在のユーザー(ログインしている)情報を保持しています。サーブレットもビーンもないクラスもあります。私はjsf beanにアクセスしてクラス内の現在のユーザー情報を取得したい。私はjsf beanにアクセスするためのサーブレットのための解決策を見つけましたが、私はこの問題の解決策を見つけることができませんでした。それを行う方法はありますか?サーブレットでもなくBeanでもないクラスからJSF beanにアクセスする

ありがとうございました!

答えて

1

上記のクラスのインスタンスがFacesServletを呼び出したHTTPリクエストスレッドと同じスレッドで実行されている場合は、FacesContextとそれからApplication#evaluateExpressionGet()で取得できます。参照先Get JSF managed bean by name in any Servlet related class

上記のクラスのインスタンスが別のスレッドで実行されている場合は、事前にクラスのコンストラクタやメソッドに必要な情報を渡すか、必要な情報を共有データソースに格納する必要があります。 JSF webappとスタンドアロン・クラスの両方が、データベース、ローカル・ディスク・ファイル・システム・ファイル、JNDIコンテキストなどのアクセス権を持ちます。状況や環境によっては、CDIの@Named + @Injectも解決策となります。

「最良の方法」は、質問から明らかではない具体的な機能要件に依存するため、正しい方法を指摘したり、キックオフの例を挙げたりすることはできません。

関連する問題