Hallo, ich sitze seit 4 Stunden an einem Problem und weiß einfach nicht mehr weiter.
Ich möchte auf einer Seite Checkboxen anzeigen lassen. Das klappt auch wunderbar. Nach dem "abschicken" des Forms, wird eine Funktion "anzeigen" aufgerufen. Diese soll die angekreuzten Checkbox-Werte wiedergeben (also: was wurde angekreuzt).
Ich bekomme allerdings IMMER die Fehlermeldung: java.lang.String cannot be cast to javax.faces.model.SelectItem
Mein Code sieht wie folgt aus:
index.xhtml:
Controller.java
ich weiß einfach nicht mehr weiter .... :-(
Ich möchte auf einer Seite Checkboxen anzeigen lassen. Das klappt auch wunderbar. Nach dem "abschicken" des Forms, wird eine Funktion "anzeigen" aufgerufen. Diese soll die angekreuzten Checkbox-Werte wiedergeben (also: was wurde angekreuzt).
Ich bekomme allerdings IMMER die Fehlermeldung: java.lang.String cannot be cast to javax.faces.model.SelectItem
Mein Code sieht wie folgt aus:
index.xhtml:
HTML:
<h:selectManyCheckbox id="nase" value="#{controller.selectItems}">
<f:selectItems value="#{controller.selectItemsList}" />
</h:selectManyCheckbox>
Controller.java
Java:
public class MitarbeiterController implements Serializable {
private List<SelectItem> selectItemsList = new ArrayList<SelectItem>();
private List<SelectItem> selectItems = new ArrayList<SelectItem>();
....
public void setSelectItemsList() {
Raum obj1 = new Raum();
Raum obj1 = new Raum();
Raum obj1 = new Raum();
selectItemsList.add( new SelectItem( obj1 ) );
selectItemsList.add( new SelectItem( obj2 ) );
selectItemsList.add( new SelectItem( obj3 ) );
}
public List<SelectItem>getSelectItemsList() {
return selectItemsList;
}
public List<SelectItem> getSelectItems() {
return selectItems;
}
public void setSelectItems(List<SelectItem> e) {
selectItems = e;
}
...
public void anzeigen() {
// die 3 Varianten bringen alle den selben Fehler!
String str = getSelectItems().get(0).getLabel(); // var 1
Raum str = (Raum) getSelectItems().get(0).getValue(); // var 2
String str = getSelectItems().get(0).getValue().toString(); // var 3
System.out.println("getSelectItems(): " + str);
// System.out.println( getSelectItems().get(0) ) ruft die toString Methode meines Objekts korrekt auf. Die Daten liegen also korrekt in "selectItems" vor.
}
}
ich weiß einfach nicht mehr weiter .... :-(
Zuletzt bearbeitet von einem Moderator: