我的 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
值(即不是 String
、 Number
或 Boolean
EL 已经内置强制转换),那么您必须为此创建一个 Converter
。更多细节可以在 this blog article 中找到。关于java - 如何将selectManyListbox中选择的数据存储到JSF中的列表中?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2235817/