HTML テーブルを作成し、ui:repeat を使用して行データを表示する JSF ページがあります。特定の行を選択すると、行データ全体を保存する保存ボタンがあります。特定の行を選択しようとすると、行データを取得できません。ui:repeat には、バッキング Bean の dataTable にバインドするバインディング属性がありません。
同じことを達成する方法を提案してください。前もって感謝します
チェックボックスを Bean プロパティに接続してください。
<h:selectBooleanCheckbox id="selection" value="#{listController.checked[item.id]}" />
あなたのBeanでは、次のものが必要です。
private Map<Integer, Boolean> checked = new HashMap<Integer, Boolean>();
public Map<Integer, Boolean> getChecked() {
return checked;
}
次に、どのアイテムが選択されたかを知りたい場合は、次のことができます。
for (Map.Entry<Integer, Boolean> e : checked.entrySet()) {
if (e.getValue()) {
// do something with selected row
}
}
これは、使用中のonchange
イベントで呼び出す必要があるアクションのパラメータとして現在の行を渡すことで実現できます。selectBooleanCheckbox
jsf:ajax