Hallo!
Ich habe einen custom converter geschrieben, der für ein h:selectOneMenu die Klasse User zugänglich machen soll. Es soll User.id - ein long - als value ffür das h:selectOneMenu genommen werden und User.name als label.
Hier die Code-Passagen:
So an sich funktioniert das ganze shcon ganz gut. Aber bei der Übernahme bekomme ich die JSF Meldung:
bzw. auf Deutsch:
Danke und Gruß,
Sascha
Ich habe einen custom converter geschrieben, der für ein h:selectOneMenu die Klasse User zugänglich machen soll. Es soll User.id - ein long - als value ffür das h:selectOneMenu genommen werden und User.name als label.
Hier die Code-Passagen:
Code:
<h:outputLabel for="reportedBy">
<h:outputText value="Gemeldet von: " />
</h:outputLabel>
<h:selectOneMenu id="reportedBy" value="#{NewCaseBean.reportedBy}">
<f:converter converterId="UserConverter" />
<f:selectItems value="#{NewCaseBean.reporters}" />
</h:selectOneMenu>
<h:message for="reportedBy" />
Code:
/* Aus dem Converter */
public Object getAsObject(FacesContext context, UIComponent component,
String value) throws ConverterException {
if (null == value) {
return null;
}
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
User tmpUser = (User) session.createQuery(
"from User as user where id=" + Long.parseLong(value)).list()
.get(0);
session.getTransaction().commit();
return tmpUser;
}
public String getAsString(FacesContext context, UIComponent component,
Object value) throws ConverterException {
if (null == value) {
return null;
}
System.out.println(value);
User tmpUser = (User) value;
return tmpUser.getId() + "";
}
Code:
/* Aus der NewCaseBean */
public Collection getReporters(){
Collection reporters = new ArrayList();
SelectItem tmpSelectItem;
for(User tmpUser : loadActiveUsers()){
tmpSelectItem = new SelectItem(tmpUser, tmpUser.getName());
reporters.add(tmpSelectItem);
}
return reporters;
}
public void setReportedBy(User reportedBy) {
this.reportedBy = reportedBy;
}
public User getReportedBy() {
return reportedBy;
}
So an sich funktioniert das ganze shcon ganz gut. Aber bei der Übernahme bekomme ich die JSF Meldung:
"reportedBy": Value is not a valid option.
bzw. auf Deutsch:
Irgendwie kapiere ich da nicht so recht. Was habe ich falsch gemacht oder was genau wird bemängelt?"reportedBy": Wert ist keine gültige Auswahl.
Danke und Gruß,
Sascha