我想知道如何从数据库中填充h:selectManyListbox
,即不使用静态选项。
将<f:selectItems>
与返回List<SelectItem>
的属性结合使用,或者当您已经使用JSF 2.0时,使用List<SomeObject>
。
<h:selectManyListbox value="#{bean.selectedItems}">
<f:selectItems value="#{bean.selectItems}" />
</h:selectManyListbox>
您可以在bean的构造函数或@PostConstruct
方法中从DB加载项。
public class Bean {
private List<String> selectedItems;
private List<SelectItem> selectItems;
public Bean() {
selectItems = new ArrayList<SelectItem>();
// Fill select items during Bean initialization/construction.
// Below is just an example, you could replace this by getting a list
// of some objects from DB and creating new items in a loop.
selectItems.add(new SelectItem("value1", "label1"));
selectItems.add(new SelectItem("value2", "label2"));
selectItems.add(new SelectItem("value3", "label3"));
}
// Getters, etc
}