2012-11-20 8 views
6

サーブレット内のビュースコープ管理Beanにアクセスしたいと思います。 Servletから@ViewScopedマネージドBeanにアクセスするには?

は、私は同様の質問を検索し、これらのものを得た:それは他のすべてのスコープを扱いますが、viewscopeないヌル結果

JSF - get managed bean by nameを与える必要がありますので、サーブレット内で適用できないFacesContext.getCurrentInstance()を、使用しています

how to get beans from view scope

私はそれが不可能だと思うだろうか?

Beanスコープをセッションスコープに変更する簡単な解決策がありますが、メモリ消費が心配なので最後のチャンスです。

私の最終的な必要は次のとおりです。管理ビーンには、dataTableに表示されるいくつかのデータが含まれています。同じページには、それらのデータのチャート表現のイメージ(必須)を含める必要があります。イメージはサーブレットによって生成できますが、データにアクセスしたり、データベースから再ロードする必要があります。

また、PrimeFaces 2.Xから<p:graphicImage>を試しましたが、viewscope beansと互換性がありません。なにか提案を?

答えて

6

これはできません。ビューのスコープは、特定のJSFビューに関連付けられています。これは、プレーンなHTTPサーブレット要求の手段ではありません。プレーンなHTTPサーブレット要求の間に具体的な要求スコープBeanにアクセスすることはできません。常に、nullを返します。

あなたが得ることができるセッションの範囲は最高です。サーブレットで属性を終了すると、セッションスコープから属性を削除することができます。

session.removeAttribute("somename"); 
+0

私はJSFに関連する質問があれば、私はあなたに期待することができます。お返事ありがとうございます – Filippo

+0

あなたは大歓迎です:) – BalusC

+0

> BalusC氏は次のように述べています。「プレーンなHTTPサーブレットリクエスト中に具体的な要求スコープBeanにアクセスすることはできません。ありがとう。 –

関連する問題