2010-10-16 64 views
1

我希望將列表中的項目設置爲icefaces中的selectonemenu。 但是當我這樣做時,我得到以下錯誤: java.lang.ClassCastException:無法轉換爲javax.faces.model.SelectItem在冰上設置列表項:SelectOneMenu

這是一個實體類。

請幫忙。

回答

3

創建和填充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())); 
    } 
} 

與視圖(您可以輕鬆地subsitite <h:<ice:)如下:

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

相反值爲String,您也可以使用任何NumberInteger,Long等),因爲JSF內置了轉換器。但是,如果要將整個對象用作項目值,則需要創建一個Converter。這在this article中有詳細描述。