Auf der Registrierungsseite möchte ich, dass die Benutzer nur eine Rolle auswählen können. Deshalb verwende ich <h:selectOneMenu
Wie konvertiert man h: selectOneMenu Element in eine Liste <String> mit benutzerdefinierten JSF-Konverter?
<h:selectOneMenu id="roles" value="#{register.user.roles}" required="true">
<f:selectItem itemValue="EMPLOYEE" itemLabel="EMPLOYEE" />
<f:selectItem itemValue="MANAGER" itemLabel="MANAGER" />
</h:selectOneMenu>
<h:selectOneMenu
kehrt String
Objekt. Um es jedoch in der Datenbank zu erhalten, muss ich List<String>
bekommen. Hier Wandler ich
@FacesConverter(value="aConverter")
public class AConverter implements Converter {
@Override
public Object getAsObject(FacesContext arg0, UIComponent arg1, String arg2)
throws ConverterException {
List<String> result = null;
result.add(arg1.toString());
return result;
}
@Override
public String getAsString(FacesContext arg0, UIComponent arg1, Object arg2)
throws ConverterException {
return arg1.toString();
}
Wie soll ich <h:selectOneMenu
return String
zu einem List
konvertieren? ich NullPointerException
1: benutze arg2, was der Wert ist, nicht arg1, was die Auswahlkomponente ist. 2: 'Liste result = null;' ist die Ursache der Nullzeigerausnahme. versuche etwas wie 'new ArrayList ()' anstelle von null. –
was meinst du mit allen Kombinationen? Wenn Sie eine Liste als null initialisieren und dann in der nächsten Zeile hinzufügen, erhalten Sie offensichtlich eine Nullzeigerausnahme. –