前提・実現したいこと
JSFでマスタメンテナンス画面を開発しています。
検索条件に指定した条件に合致する行をJava側でパッキングビーン内のListに格納し、
JSF側で、ui:repeatタグを使用して、そのリストに格納された内容を展開するという手法で
該当するレコードを画面に表示させ、そこで各行の内容を修正できるという仕様です。
入力値のチェックとして、ビーンバリデーションも定義しており、
入力値が不正な場合はデータベースへの更新はしないよう抑止しています。
発生している問題
今発生している事象は、
バリデーションエラーが発生後、同一画面で再度同じ条件で検索して画面を再描画した場合、
ui:repeatタグで展開される内容が、初回に表示されていた最終行の内容が全行に表示されてしまうという現象です。(正確にはjsf:readonly="true"の項目は正しく表示されている模様。)
バリデーションエラーが発生していない場合はこの事象は発生しません。
また再検索時のパッキングビーン内のListの内容も正しく格納されていることはデバッガで確認済です。
一旦別画面に遷移して戻ってきた場合も正しく動作します。(検索条件に応じた内容が表示されます。)
この辺りの挙動について詳しい方がいらっしゃいましたら、
お知恵をお貸しいただけますでしょうか。
以上よろしくお願いします。
補足情報(FW/ツールのバージョンなど)
OS:AmazonLinux
フレームワーク:JavaEE7
アプリケーションサーバ:WildFly 10.1.0.Final
データベース:PostgreSQL9.6
あなたの回答
tips
プレビュー