У меня есть список с несколькими выборками
Таким образом, <h:selectManyListbox>
с фиксированным значением <f:selectItems>
.
<h:selectManyListbox id="listbox" value="#{bean.selectedListboxItems}">
<f:selectItems value="#{bean.availableListboxItems}" />
</h:selectManyListbox>
С чем-то вроде:
private List<String> availableListboxItems;
private List<String> selectedListboxItems;
@PostConstruct
public void init() {
availableListboxItems = new ArrayList<String>();
availableListboxItems.add("menu item 1");
availableListboxItems.add("menu item 2");
availableListboxItems.add("menu item 3");
}
и в зависимости от того, сколько элементов выберет пользователь, я должен показать одинаковое количество флажков
Таким образом, просто предварительно заполните <f:selectItems>
из <h:selectManyCheckbox>
на основе значения <h:selectManyListbox>
.
<h:commandButton value="Generate checkboxes">
<f:ajax execute="listbox" listener="#{bean.generateCheckboxes}" render="checkboxes" />
</h:commandButton>
<h:selectManyCheckbox id="checkboxes" value="#{bean.selectedCheckboxItems}">
<f:selectItems value="#{bean.availableCheckboxItems}" />
</h:selectManyCheckbox>
с чем-то вроде
private List<String> availableCheckboxItems;
private List<String> selectedCheckboxItems;
public void generateCheckboxes() {
availableCheckboxItems = new ArrayList<String>();
for (int i = 1; i <= selectedListboxItems.size(); i++) {
availableCheckboxItems.add("checkbox item " + i);
}
}
Я использую jsf и primefaces / spring webflow. Как я могу это сделать? Есть примеры?
Я считаю, что приведенных выше тривиальных примеров достаточно. Для PrimeFaces просто замените <h:xxx>
на <p:xxx>
. Однако я понятия не имею, как Spring Webflow играет в этом роль, поскольку я никогда не использовал его.
И мне нужно сделать один флажок, который позволит проверять все сгенерированные флажки одним щелчком мыши.
Это оставлено для тебя как упражнение. Подсказка: убедитесь, что availableCheckboxItems
содержит требуемые значения в зависимости от текущего значения <h:selectBooleanCheckbox>
, которое должно представлять «переключение выбранных элементов».