Core JavaServer Facesには、DataTableから行を削除するための次の例があります。ここで、tableData.namesはNameオブジェクトのリストです。
<h:dataTable value="#{tableData.names}" var="name" ... />
<h:commandLink value="Delete" action="#{tableData.deleteRow(name)}" />
</h:dataTable>
リクエストスコープを使用し、リストが「テーブルのレンダリングとレスポンスのデコードの間」で変更されると、正しい行が削除されない可能性があるという警告が表示されます。
注意:データテーブルの値にリクエストスコープがある場合は、テーブルのレンダリングと応答のデコードの間でデータが変更されないようにしてください(第3版の226ページ)
誰かがJSFライフサイクルの観点からその引用を説明できますか?「応答のレンダリング」がJSFライフサイクルの最終段階である場合、「応答のデコード」はどこに当てはまりますか?それらは、次のポストバックREQUEST(行、したがって名前オブジェクトを識別するために生成されたIDを送信する)のデコードを意味しますか?
そして:どうすればこれをより堅牢な方法で実装できますか?