Настройка элементов списка на льду: SelectOneMenu - PullRequest
1 голос
/ 16 октября 2010

Я хочу установить элементы из списка в selectonemenu в icefaces.Но когда я делаю то же самое, я получаю следующую ошибку: java.lang.ClassCastException: невозможно привести к javax.faces.model.SelectItem

Это класс сущности.

Пожалуйста, помогите.

1 Ответ

4 голосов
/ 16 октября 2010

Обычный способ создания и заполнения элементов selectOneMenu будет следующим:

private String selectedItem; // +getter +setter
private List<SelectItem> selectItems; // +getter

public Bean() {
    selectItems = new ArrayList<SelectItem>();
    for (Entity entity : getYourEntities()) {
        selectItems.add(new SelectItem(entity.getValue(), entity.getLabel()));
    }
}

С учетом следующего (вы можете легко разделить <h: с помощью <ice:):

<h:selectOneMenu value="#{bean.selectedItem}">
    <f:selectItems value="#{bean.selectItems}" />
</h:selectOneMenu>

Вместо значения String вы также можете использовать любой Number (Integer, Long и т. Д.), Поскольку JSF имеет встроенные преобразователи для этого. Но если вы хотите использовать целые объекты в качестве значения элемента, вам нужно создать Converter. Это подробно описано в этой статье .

...