Hallo,
habe nochmal ein Problem mit dem Converter.
Ich habe eine Seite die mir ein Dropdown mit Werten aus der DB anzeigt. wähle ich eins aus und klicke auf Speichern, bekomme ich einen Fehler:
EinnahmeAnlegen.xhtml
Leider klappt noch nicht einmal die Aufteilung value und label. Der generierte HTML-Code:
[XML]
...
<select id="j_idt7:selectmenu" name="j_idt7:selectmenu" size="1"> <option value="1:Gehalt" selected="selected">1:Gehalt</option>
<option value="2:Gehaltsbonus">2:Gehaltsbonus</option>
<option value="3:Zinsen">3:Zinsen</option>
<option value="4:Bank Of Scotland Zinsen">4:Bank Of Scotland Zinsen</option>
<option value="5:Kindergeld">5:Kindergeld</option>
</select></td>
</tr>
<tr>
<td><input type="submit" name="j_idt7:j_idt13" value="Speichern" />
...
[/XML]
Ansich würde ich mir wünschen, dass bei value nur die 1,2,..,5 steht und als Text nur Gehalt etc.
Die Form ID:Text kommt von der toString() Methode:
Wäre nett, wenn mir wieder jemand weiterhelfen könnte.
Gruß hyperion
habe nochmal ein Problem mit dem Converter.
Ich habe eine Seite die mir ein Dropdown mit Werten aus der DB anzeigt. wähle ich eins aus und klicke auf Speichern, bekomme ich einen Fehler:
Code:
j_idt7:selectmenu: Überprüfungsfehler: Wert ist ungültig.
EinnahmeAnlegen.xhtml
Java:
<h:form>
...
<h:selectOneMenu id="selectmenu" value ="#{einnahmeAnlegenController.selectedEinnahmeArt}">
<f:converter converterId="converterEinnahmeArt"/>
<f:selectItems var="#{einnahmeArt}" value="#{einnahmeAnlegenController.einnahmeArten}"
itemLabel="#{einnahmeArt.text}" itemValue="#{einnahmeArt.einnahmeArtID}"/>
</h:selectOneMenu>
<h:commandButton value="Speichern" action="#{einnahmeAnlegenController.speichern}"/>
...
</h:form>
Java:
public class ConverterEinnahmeArt implements Converter {
public Object getAsObject(FacesContext arg0, UIComponent arg1, String arg2) {
//holt anhand des Strings das Objekt aus der DB
return EinnahmeArt.getByID(Integer.parseInt(arg2.substring(0, arg2.indexOf(":"))));
}
public String getAsString(FacesContext arg0, UIComponent arg1, Object arg2) {
//Macht aus dem Objekt einen String
return arg2.toString();
}
}
Leider klappt noch nicht einmal die Aufteilung value und label. Der generierte HTML-Code:
[XML]
...
<select id="j_idt7:selectmenu" name="j_idt7:selectmenu" size="1"> <option value="1:Gehalt" selected="selected">1:Gehalt</option>
<option value="2:Gehaltsbonus">2:Gehaltsbonus</option>
<option value="3:Zinsen">3:Zinsen</option>
<option value="4:Bank Of Scotland Zinsen">4:Bank Of Scotland Zinsen</option>
<option value="5:Kindergeld">5:Kindergeld</option>
</select></td>
</tr>
<tr>
<td><input type="submit" name="j_idt7:j_idt13" value="Speichern" />
...
[/XML]
Ansich würde ich mir wünschen, dass bei value nur die 1,2,..,5 steht und als Text nur Gehalt etc.
Die Form ID:Text kommt von der toString() Methode:
Java:
public class EinnahmeArt{
...
public String toString(){
return einnahmeArtID + ":" + text;
}
...
}
Wäre nett, wenn mir wieder jemand weiterhelfen könnte.
Gruß hyperion