2009-08-24 11 views
2

ich in die Erstellung von Rich ein Problem habe: Combobox i als habeErstellen einer Combobox in Richfaces

<rich:comboBox selectFirstOnUpdate="false" defaultLabel="Enter some value"> 
    <f:selectItems value="#{userregister.selectItems}" /> 
</rich:comboBox> 

und im Backing Bean folgt erstellt i die selectItems als

List<UISelectItem> selectItems; 
UISelectItem uisi = new UISelectItem(); 
uisi.setItemLabel("label"); 
uisi.setValue("value"); 
selectItems.add(uisi); 

Aber ich folgt bekomme ich die Ausnahme javax.servlet.ServletException: Value of tag <selectItems> attribute is incorrect. Was ist der richtige Weg, um eine Combobox mit dynamischen Werten zu erstellen?

Antwort

4

Der Grund, warum es nicht funktioniert, ist, weil Sie itemValue auf Ihrem ausgewählten Element nicht gesetzt haben.

List<SelectItem> selectItems = new ArrayList(); 
selectItems.add(new SelectItem('value', 
'label')); 

, welche die gleiche ist wie zu sagen:

List<SelectItem> selectItems = new ArrayList(); 
SelectItem item = new SelectItem(); 
item.setItemLabel("label"); 
item.setItemValue("value"); 

Der Wert für die selectItem ist definiert als ItemValue nicht btw so schätzen, indem korrigiert wird, wie Ihr aber Ive nie UISelectItem und stattdessen verwendet SelectItem wie folgt verwendet Code wird wahrscheinlich ohne andere Modifikationen als das funktionieren. Irgendein Grund, warum Sie UISelectItem und nicht nur SelectItem BTW verwenden?