プリミティブ ビューがあります。これは、検証可能なテキスト入力コンポーネントとコマンド ボタンを含むフォームです。入力値は、セッション スコープのバッキング Bean を指しています。
ページを開き、無効な値を入力してフォームを送信すると、ポストバック後に検証エラーが表示され、検証に合格しなかった送信値が入力コンポーネントに表示されます。予想どおり、セッション スコープの Bean のモデル値はそのまま残ります。
さて、ブラウザで別のタブを開き、同じページを開きます。驚いたことに、入力コンポーネントは最初のタブから送信された値を表示しています。別の GET リクエストでビューステートが新しくなり、代わりにセッションスコープの Bean からのプレーンなモデル値が表示されると想定していました。
セッション スコープの Bean の代わりにビュー スコープの Bean を使用すると、最初のタブから送信された値ではなく、2 番目のタブの入力コンポーネントに対してモデル値がレンダリングされます。
送信された値は、ビュー ステートの一部ではなく、モデルと共に保持されますか? または、参照される Bean のスコープに応じて、そのスコープがスマートな方法で調整されていますか?
この質問がばかげている場合は事前に申し訳ありませんが、誤解を取り除いていただきありがとうございます。