会話中に表示されたページを更新するとエラーが発生します。このエラーを回避するにはどうすればよいですか?
状況:
index.xhtml と age.xhtml の 2 つの JSF ページがあります。
index.xhtml には、ユーザーが生年月日を入力するフォームが含まれています (バッキング Bean「bean」のプロパティ)。ユーザーがフォームを送信すると、age.xhtml は生年月日に従って年齢を表示します。
フォームはリダイレクト付きで送信されます。
<h:commandButton value="Submit" action="#{bean.computeAge()}" />
computeAge メソッド:
conversation.begin();
return "age?faces-redirect=true";
同じバッキング Bean「bean」が両方のページで使用されます。このバッキング Bean には会話スコープがあります。
ページ age.xhtml:
Your age: #{bean.age} years
getAge メソッド:
if (!conversation.isTransient()) {
conversation.end();
}
return ejb.computeAge(birthdate);
age.xhtml を更新する場合を除いて、すべて問題ありません。その後、次のエラー メッセージが表示されます: WELD-000321 ID 3 の復元する会話が見つかりません
更新前後にブラウザに表示される URL:
http://localhost:8080/tpjsf1/faces/age.xhtml?cid=3
問題は最後の cid=3 にあります。ユーザーが age.xhtml を更新したときにエラー ページを回避することは可能ですか?