2011-08-02 10 views
1

1つのビューの唯一最大があるように私は、1にweb.xmlでセッション属性で論理ビューとビューの#を定義しました。それで、私はいくつかの質問があります:JSFビューはユーザー間で共有されていますか?

  • これは#特定のユーザーに対して適用されますか?意味、これはビューの数をユーザー1人に制限しますか? **複数のユーザーに同じJSPを複数表示できますか?

  • ユーザー間JSFビューを共有する方法はあり

    は、(ビューではなく、一般的なであることを特定し、任意のユーザー固有のデータが含まれていませんか)?

ありがとう!

答えて

3

「ユーザー」の一般的な定義が実際にはと「a HTTPセッション」の場合、正しくあります。ビューは基本的にHTTPセッションに保存され、javax.faces.ViewStateという名前の隠しHTML入力フィールドによって参照されます。異なるHTTPセッションは、互いのビューを共有しません。そうでなければ、明らかに巨大なバグとセキュリティホールになります。

セッション内の(論理)ビューの数を1に設定すると、同じセッションの異なるウィンドウ/タブでPOSTフォームを含む複数のビューを使用できる可能性がなくなります。あなたがあるセッションでのみビューを、維持するためにそれを設定したため、エンドユーザーは、前のウィンドウ/タブでPOSTリクエストを起動するたびに毎回エンドユーザーが新しいウィンドウ/タブを開き、エンドユーザーはViewExpiredExceptionを受け取ることになります最後に開かれたもの。

+0

ありがとうございます。うーん... :-(JSFで(別名、読み取り専用)ではなく、静的な景色に対処するための最良の方法は何、その場合には?ページのほとんどは、いくつかの例外を除けば、ユーザベースへの一般的であると仮定し、私は「ワン(全体的なメモリフットプリントを削減する関心で)セッション間で可能な限り既存のビューを再利用するtが。これは、JSF(ポートレット内)の世界では可能ではないですか?希望はない。 –

+0

私は、追加のオーバーヘッドをしたくありませんリクエストのスコープ付きBean(初期化の回数を増やす予定)のようになります。データの性質上、アプリケーションスコープのBeanに傾いています。ビュースコープを使用していないのですが、私はまだ明確ではありません。すべてのJSPは、(特定のセッションで)ユニークなビューを生成することになります。参照されるBeanのスコープを再生することができますが、セッション全体で同じ見解を共有することができます(その一般的な性質を考慮して)ビューの –

+0

ビューは、 ''のようにPOSTフォームが含まれている場合にのみ作成され、セッションに格納されます。あなたがそれらのどれも持っていない場合(プレーンページツーページナビゲーションではない!)、これについても心配する必要はありません。ところで、JSF 2.xでは、新しい部分状態保存メカニズムのおかげで、JSF 1.xとは対照的に、平均ビューサイズが大幅に縮小されています。ステートには、マークアップ全体の代わりに必要なフォームコンポーネントが含まれています。 – BalusC

関連する問題