Hallo Leute,
ich habe ein Problem beim Speichern von Benutzerdaten in der Datenbank. Und zwas bekomme ich immer eine NullPointerException nachdem der Converter des SelectOneMenus durchlaufen wurde. Schmeiße ich das SelectOneMenu raus, dann kommt auch keine Exception mehr..
View:
Converter:
Beim Debuggen ist mir aufgefallen, dass der Converter das richtige Objekt zurück gibt. Erst nach der Methode getConvertedValue von Primefaces knallt es... Hat da vielleicht jemand eine Idee?
ich habe ein Problem beim Speichern von Benutzerdaten in der Datenbank. Und zwas bekomme ich immer eine NullPointerException nachdem der Converter des SelectOneMenus durchlaufen wurde. Schmeiße ich das SelectOneMenu raus, dann kommt auch keine Exception mehr..
View:
Java:
...
<h:outputLabel value="Passwort" for="password" />
<p:password id="password" value="#{personenController.selected.passwort}" />
<h:outputLabel value="Rolle" for="rolle" />
<p:selectOneMenu id="rolle" value="#{personenController.selected.rolleID}" >
<f:selectItems value="#{rollenController.getItemsAvailableSelectOne()}" />
</p:selectOneMenu>
</h:panelGrid>
<br />
<h:commandButton value="Änderungen speichern"
id="saveChanges"
action="#{personenController.saveChanges}"
/>
</p:panel>
</p:fieldset
Converter:
Java:
@FacesConverter(forClass = Rollen.class)
public static class RollenControllerConverter implements Converter {
public Object getAsObject(FacesContext facesContext, UIComponent component, String value) {
if (value == null || value.length() == 0) {
return null;
}
RollenController controller = (RollenController) facesContext.getApplication().getELResolver().
getValue(facesContext.getELContext(), null, "rollenController");
Rollen test = controller.findByRole(value);
return test;
// return controller.findByRole(value);
}
public String getAsString(FacesContext facesContext, UIComponent component, Object object) {
if (object == null) {
return null;
}
if (object instanceof Rollen) {
Rollen o = (Rollen) object;
return o.getRolle();
} else {
throw new IllegalArgumentException("object " + object + " is of type " + object.getClass().getName() + "; expected type: " + ProdukteController.class.getName());
}
}
}
Beim Debuggen ist mir aufgefallen, dass der Converter das richtige Objekt zurück gibt. Erst nach der Methode getConvertedValue von Primefaces knallt es... Hat da vielleicht jemand eine Idee?