【问题标题】:How to get all the selected values from selectManyListbox / selectManyMenu / selectManyCheckbox?如何从 selectManyListbox / selectManyMenu / selectManyCheckbox 中获取所有选定的值?
【发布时间】:2011-05-20 11:44:30
【问题描述】:

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

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

【问题讨论】:

    标签: jsf selectmanycheckbox selectmanymenu selectmanylistbox


    【解决方案1】:

    与所有其他输入组件一样,只需将其 value 属性与托管 bean 属性绑定即可。它可以映射到List 或与您在f:selectItem(s) 中使用的值类型相同的数组。如果值类型不是标准 EL 类型之一(String、Number 或 Boolean),那么您还必须提供 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.
        }
    
        // ...
    }
    

    另见:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-03
      • 2015-02-19
      • 2011-08-17
      • 1970-01-01
      • 2013-08-23
      • 2019-03-15
      • 1970-01-01
      相关资源
      最近更新 更多