Rai прав в случае, если вы хотели бы добавить одинProduct
в действии, как в представлении (в окружении итерируя компонента)
<h:commandButton value="Add to selected" actionListener="#{bean.addProductToList2}>
<f:setPropertyActionListener value="#{product}" target="#{bean.selectedProduct}/>
<f:ajax render="table2/>
</h:commandButton>
с
private Product selectedProduct;
public void addProductToList2(ActionEvent event) {
if(!list2.contains(selectedProduct)){
list2.add(selectedProduct);
}
}
Кроме того, он право выбора двух списков.
Если вы хотели бы добавить возможность добавления всех выбранных продуктов сразу можно использовать Флажки вместо
<h:selectBooleanCheckbox valueChangeListener="#{bean.toggleProductInList2}">
<f:setPropertyActionListener value="#{product}" target="#{bean.selectedProduct}/>
</h:selectBooleanCheckbox>
с
private Product selectedProduct;
public void toggleProductInList2(ValueChangeEvent event) {
Boolean isChecked = (Boolean) event.getNewValue();
if(isChecked){
list2.add(selectedProduct);
} else {
list2.remove(selectedProduct);
}
}
Этот путь список будет подготовлен и может быть при нажатии кнопки:
<h:commandButton value="Show selected">
<f:ajax render="table-container"/>
</h:commandButton>
<h:panelGroup id="table-container">
<ui:repeat...>
</ui:repeat>
</h:panelGroup>
Я думаю, что это легко и приятно. – psi