こんな感じをJSFで実装したい(検索画面の一部)
「 + 」ボタンをクリックすると新しい行が動的に追加され、「 - 」ボタンをクリックすると行が削除されます。問題は、値 (動的に作成された行のユーザー入力) をバッキング モデルにバインドすることです。
セッション スコープのバッキング Bean を作成しました。コードの一部、
public class BackingBean{
//other code
private List<Criteria> searchFilters; // Each criteria is bound to a row
public void init(){
//init code
}
public void addEmptyCriteria(){
searchFilters.add(MyFactory.createNewCriteria());
}
}
+ボタンのアクションはaddEmtpyCriteria メソッドをトリガーし、(a4j を使用して) セクション全体を (新しい行で) 再レンダリングします。
これは単なるボイラープレートであり、Bean がセッション スコープである限り、すべてが正常に機能します。ただし、リクエストスコープに含める方がより直感的です。1 回の検索は、ユーザーによって行われる 1 回の要求であり、ユーザー セッションに関連付けられることはありません。また、セッションにあると、開発者は、新しい検索画面を表示するために、セッションからバッキング Bean をクリア/削除する必要があります。
これを行うより良い方法はありますか?セッションスコープに入れるのは正しいですか?