9

サーブレット内のビュー スコープ マネージド Bean にアクセスしたいと考えています。

私は同様の質問を検索し、これらのものを得ました:

を使用するFacesContext.getCurrentInstance()ビュースコープから Bean を取得する方法

JSF -他のすべてのスコープを処理するがビュースコープを処理しないマネージド Bean を名前で取得する

無理だと思いますよね?

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

私の最後のニーズは次のとおりです。managebean には、dataTable に表示されるデータが含まれています。同じページに、それらのデータのチャート表現の画像 (必須) を含める必要があります。イメージはサーブレットで生成できますが、データにアクセスするか、データベースから再ロードする必要があります。

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

4

1 に答える 1

7

それは不可能です。ビュー スコープは特定の JSF ビューに結び付けられますが、これは単純な HTTP サーブレット リクエストの手段ではありません。プレーンな HTTP サーブレット リクエスト中も、具体的なリクエスト スコープ Bean にアクセスできないことに注意してください。これらは常に を返しnullます。

セッションスコープは、あなたが得ることができる最高のものです. サーブレットで属性を使い終わったら、セッション スコープから属性を削除するだけです。

session.removeAttribute("somename");
于 2012-11-20T12:05:14.567 に答える