#jsf
#jsf
Вопрос:
Я хотел бы знать, как я могу заполнить h:selectManyListbox
из базы данных, т. Е. не с помощью статических параметров.
Комментарии:
1. Вас не устраивает ответ от @BalusC?
Ответ №1:
Используйте <f:selectItems>
в сочетании со свойством, которое возвращает List<SelectItem>
, или когда вы уже используете JSF 2.0, a List<SomeObject>
.
<h:selectManyListbox value="#{bean.selectedItems}">
<f:selectItems value="#{bean.selectItems}" />
</h:selectManyListbox>
Вы можете загрузить элементы из базы данных в конструкторе bean или @PostConstruct
методе.
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
}