如何从selectManyListbox/selectManyMenu/selectManyCheckbox中获取所有选定的值?

Abh*_*ote 6 jsf selectmanycheckbox selectmanylistbox selectmanymenu

如何从支持bean中的UISelectMany组件中收集所有选定值,例如h:selectManyListbox,h:selectManyMenu,h:selectManyCheckbox,p:selectManyListbox,p:selectManyMenu,p:selectManyCheckbox等?

如果有人可以帮助一个例子,那将真的有帮助.

Bal*_*usC 16

与其他所有输入组件一样,只需将其value属性与托管bean属性绑定即可.它可以映射到List您使用的相同值类型的数组或数组f:selectItem(s).如果值类型不是标准EL类型(String,NumberBoolean)之一,那么您还必须提供一个Converter.

这是一个值类型为的示例String:

<h:selectManyListbox value="#{bean.selectedItems}">
    <f:selectItems value="#{bean.availableItems}" />
</h:selectManyListbox>
<h:commandButton value="Submit" action="#{bean.submit}" />
Run Code Online (Sandbox Code Playgroud)

public class Bean {

    private Map<String, String> availableItems; // +getter (no setter necessary)
    private List<String> selectedItems; // +getter +setter

    @PostConstruct
    public void init() {
        availableItems = new LinkedHashMap<String, String>();
        availableItems.put("Foo label", "foo");
        availableItems.put("Bar label", "bar");
        availableItems.put("Baz label", "baz");
    }

    public void submit() {
        System.out.println(selectedItems); // It's already set at that point.
    }

    // ...
}
Run Code Online (Sandbox Code Playgroud)

也可以看看: