<h:selectOneMenu> Illegal Argument Exception [JSF]

Bexx

Verrückte Erfinderin bei Daniel Düsentrieb
Hallo,

vielleicht kann mir ja jemand von euch auf die Sprünge helfen.
Ich habe ein Problem mit dem selectOneMenu. Hier der Code:

HTML:
<h:selectOneMenu
                                id="skin"
                                style="width:90px"
                                value="#{sessionTable.selectedGroup}"                                
                         >
                    <f:selectItem  value="#{sessionTable.groupList}"  
                                             itemLabel="" 
                                             itemValue=""/>                
                </h:selectOneMenu>

Code:
    public String getSelectedGroup() {
        return selectedGroup;
    }
    public void setSelectedGroup(String selectedGroup) {
        this.selectedGroup = selectedGroup;
    }

    public List<SelectItem> getGroupList() {
        if(this.groupList == null || this.groupList.isEmpty())
        {
            for(short i = 0; i < 20; i++)
            {
                groupList.add(new SelectItem(String.valueOf(i+1),"Gruppe"+i));
            }
        }
        return groupList;
    }

    public void setGroupList(List<SelectItem> groupList) {
        this.groupList = groupList;
    }

Da selectOneMenu kein Attribut var hat, bin ich nicht sicher wie ich itemlabel und itemvalue angeben soll, da ich durch eine Liste ja normal durchiterieren muss um an den Wert eines einzelnen Elements zu kommen...

Weiß vielleicht jemand woran es hängt?
 
irgendwie scheint mir hier nie jemand helfen zu können...:(

naja, anyway, ich habe mein Problem mit einer rich:comboBox gelöst und wollte meine Lösung hinterlegen als Nachschlagewerk.

HTML:
<rich:comboBox selectFirstOnUpdate="true" 
                                           suggestionValues="#{sessionTable.groupList}" 
                                           defaultLabel="Bitte Gruppe auswählen..." 
                                           value="#{sessionTable.selectedGroup}" 
                                           required="true" 
                                           immediate="true" />


Code:
    public String getSelectedGroup() {
        return selectedGroup;
    }
 
    public void setSelectedGroup(String selectedGroup) {
        this.selectedGroup = selectedGroup;
    }

    public List<String> getGroupList() {
        if(this.groupList == null || this.groupList.isEmpty())
        {
            for(short i = 0; i < 20; i++)
            {
                groupList.add("Gruppe"+i);
            }
        }
        return groupList;
    }

    public void setGroupList(List<String> groupList) {
        this.groupList = groupList;
    }

merry x-mas
 
Hi,

du hättest folgendes angeben müssen.

HTML:
<f:selectItems value="#{sessionTable.groupList}" />

<f:selectItem/> stellt nur ein einzelnes Element dar.

Da du über deine ValueExpressioni ne List<SelectItem> dir holst, muss du auch <f:selectItems/> verwenden.

Grüße

Michael
 

Neue Beiträge

Zurück