How to save data selected in selectManyListbox to a list in JSF?

I have a selectmanyListbox component in my JSF, now I want to save the selected data in a List. How to do it?

+3
source share
2 answers

As with every component UIInput, you just need to bind the attribute valueto the bean swap property. So this way:

<h:form>
    <h:selectManyListbox value="#{bean.selectedItems}">
        <f:selectItems value="#{bean.selectItems}" />
    </h:selectManyListbox>
    <h:commandButton value="submit" action="#{bean.submit}" />
</h:form>

with the following in class Bean:

private List<String> selectedItems; // + getter + setter
private List<SelectItem> selectItems; // + getter only

public Bean() {
    // Fill select items during Bean initialization/construction.
    selectItems = new ArrayList<SelectItem>();
    selectItems.add(new SelectItem("value1", "label1"));
    selectItems.add(new SelectItem("value2", "label2"));
    selectItems.add(new SelectItem("value3", "label3"));
}

public void submit() {
    // JSF has already put selected items in `selectedItems`.
    for (String selectedItem : selectedItems) {
        System.out.println("Selected item: " + selectedItem); // Prints value1, value2 and/or value3, depending on selection.
    }
}

SelectItem (.. String, Number Boolean, EL ), Converter . .

+6

<h:selectManyListBox value="#{managedBean.list}">

bean:

private List list;

( , - )

+2

Source: https://habr.com/ru/post/1732153/


All Articles