Primefaces selectOneMenu Listener, der nicht mit anderen Objekten als Strings aufgerufen wird [duplizieren]
Diese Frage hat hier bereits eine Antwort:
Einstellungswert für Konvertierungsfehler für 'Null-Konverter' - Warum benötige ich einen Konverter in JSF? 2 AntwortenIch implementiere eine Webanwendung mit Jsf 2.0 und Primefaces 3.2. Ich habe dieses unerwartete Verhalten bemerkt: Ich habe einselectOneMenu
und eincommandButton
, wie nachstehend
<p:selectOneMenu id="selsel" value="#{bean.myObj}">
<f:selectItems value="#{bean.myObjList}" />
</p:selectOneMenu>
<p:commandButton id="btnid" value="Ok" actionListener="#{bean.updateSelectValues()}" />
Was passiert ist das wennmyObj
ist keinString
, dasupdateSelectValues
Methode wird nicht aufgerufen. Ich kann keine Ausnahme oder Fehler sehen, sie werden nur nicht aufgerufen. Hier ist die Hintergrundbohne:
private List<MyObj> myObjList;
private MyObj myObj;
// getters and setters
public void updateSelectValues() {
System.out.println(this.myObj);
}
Der Code für myObj:
public class MyObj implements Serializable {
private static final long serialVersionUID = 1L;
private String param1;
private int param2;
@Override
public String toString() {
StringBuilder builder = new StringBuilder();
builder.append("MyObj [param1=");
builder.append(this.param1);
builder.append(", param2=");
builder.append(this.param2);
builder.append("]");
return builder.toString();
}
}