6

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

如果有人可以举个例子,那真的很有帮助。

4

1 回答 1

16

与所有其他输入组件一样,只需将其value属性与托管 bean 属性绑定即可。它可以映射到List与您在f:selectItem(s). 如果值类型不是标准 EL 类型之一(StringNumberBoolean,那么您也必须提供 a Converter

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

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

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.
    }

    // ...
}

也可以看看:

于 2010-12-05T12:35:38.887 回答