Как динамически создавать список <f: selectItem>?

Есть ли способ динамически создать список selectItem? Я действительно не хочу создавать много кода bean, чтобы мои списки возвращались List<SelectItem>.

Я пробовал это:

<ice:selectManyCheckbox>
    <ui:repeat var="product" value="#{productListingService.list}">
      <f:selectItem itemLabel="#{product.description}" value="#{product.id}"/>
    </ui:repeat>
</ice:selectManyCheckbox>

но он не работает.

Любые идеи?

Ответ 1

Используйте <f:selectItems> вместо этого. Он принимает рядом с List<SelectItem> и SelectItem[] также a Map<String, Object> как значение, где ключ карты - это метка элемента, а значение карты - значение элемента. Или, если вы уже используете JSF 2.0, вместо этого вы можете использовать List<SomeBean>, где текущий элемент может ссылаться на атрибут var.

<f:selectItems value="#{productListingService.list}" var="product" 
    itemLabel="#{product.description}" itemValue="#{product.id}" />

См. также: