java - 如何将 selectManyListbox 中选择的数据存储到 JSF 中的列表中?

标签 java jsf

我的 JSF 中有一个 selectmanyListbox 组件,现在我想将选定的数据存储到一个列表中。如何做到这一点?

最佳答案

与每个 UIInput 组件一样,您只需将 value 属性与支持 bean 的属性绑定(bind)即可。因此,所以:

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

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 值(即不是 StringNumberBoolean,EL 已经内置了强制转换),那么你必须为此创建一个 Converter。更多详细信息,请参阅 this blog article .

关于java - 如何将 selectManyListbox 中选择的数据存储到 JSF 中的列表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2235817/

相关文章:

java - 数据库单元测试 (MySQL)

java - 如何跨不同的 xml 文件访问 bean

java - 如何调试库代码中出现的 NullPointerException?

jsf - 实现 SelectableDataModel

java - 在 SQLite 数据库更改时更新游标

java - 对链表方法内的日期进行排序

ajax - f :ajax listener method in h:selectOneMenu is not executed

java - 如何将单个文件从 CVS 导入到项目中

java - Spring Security 3.1 身份验证 ProviderManager 抛出 NotSerializableException

java - 编写自定义 HtmlResponseWriter JSF