Hallo.
Ich habe bereits einmal für eine Primefaces Picklist einen Converter geschrieben. Heute stelle ich fest, das sich der Converter für eine Faces SelectOneMenu Kompenente nicht so funktioniert.
Der Converter wird aufgerufen, da passt alles.
Mein Problem ist die getAsObject Methode. In den Kommentaren steht noch der Code für die Picklist.
Wenn ich nun aus der UIComponente die Objekte der SelectOneMenu Elements holen möchte, bekomme ich nur null?
Ich weiß nicht weiter?!
Ich habe bereits einmal für eine Primefaces Picklist einen Converter geschrieben. Heute stelle ich fest, das sich der Converter für eine Faces SelectOneMenu Kompenente nicht so funktioniert.
Code:
<h:outputText value="Kategorie wählen:" ></h:outputText>
<h:selectOneMenu label="Kategorie" value="#{formsBean.selectedCategoryItem}" converter="SelectOneMenuConverter" >
<f:selectItem itemLabel="Kategorie zuordnen" itemValue="#{0}" />
<f:selectItems value="#{formsBean.selectCategoryItems}" />
</h:selectOneMenu>
Der Converter wird aufgerufen, da passt alles.
Mein Problem ist die getAsObject Methode. In den Kommentaren steht noch der Code für die Picklist.
Wenn ich nun aus der UIComponente die Objekte der SelectOneMenu Elements holen möchte, bekomme ich nur null?
Code:
Object oneselect = ( (HtmlSelectOneMenu) component ).getValue();
Code:
@Override
public Object getAsObject(FacesContext context, UIComponent component, String value) {
// Object ret = null;
// if (component instanceof PickList) {
// Object dualList = ( (PickList) component ).getValue();
// if (dualList == null) throw new UnsupportedOperationException("Fehler im PickList Converter.");
// DualListModel dl = (DualListModel) dualList;
// for (Object o : dl.getSource()) {
// String persnr = "" + ( (View_get_all_users_of_share) o).getPersnr();
// ist der aktuelle wert value in der teilmenge der source seite?
// if (value.equals(persnr)) {
// ret = o;
// break;
// }
// }
// if (ret == null) {
// for (Object o : dl.getTarget()) {
// String persnr = "" + ( (View_get_all_users_of_share) o).getPersnr();
// ist der aktuelle wert value in der teilmenge der target seite?
// if (value.equals(persnr)) {
// ret = o;
// break;
// }
// }
// }
// }
// return ret;
}
Ich weiß nicht weiter?!