<p:selectOneMenu id="tm" style="width: 4.50cm" value="#{baralarBean.panel.nesne.tm}" converter="integerEnumerationDonusturucu"
required="true" requiredMessage="#{mesajlarBean.mesajiGoruntule('Trafo Merkezi', Mesajlar.ALANI_BOS_OLAMAZ)}"
disabled="#{menuYetkiBean.yazmaYetkisi(60,baralarBean.panel.nesne.onay1,baralarBean.panel.nesne.onay2)
or baralarBean.panel.islemGuncellemeMi}">
<f:selectItem itemLabel="TM Seçiniz" itemDisabled="true" noSelectionOption="true" />
<f:selectItems value="#{baralarBean.trafoMerkeziSecenekleri()}" var="x" itemValue="#{x}" itemLabel="#{x.ad}" />
</p:selectOneMenu>
@FacesConverter(value = "integerEnumerationDonusturucu")
public class IntegerEnumerationDonusturucu implements Converter {
@Override
public Object getAsObject(FacesContext context, UIComponent component, String value) {
System.out.println("getAsObject:" + value);
if (value != null && value.trim().length() > 0) {
JSONObject json = new JSONObject(value);
if (json.has("id") && json.has("ad")) {
return new IntegerEnumeration(json.getInt("id"), json.getString("ad"));
} else {
return null;
}
} else {
return null;
}
}
@Override
public String getAsString(FacesContext context, UIComponent component, Object value) {
if (value != null) {
return value.toString();
} else {
return "";
}
}
}
public class IntegerEnumeration implements Comparable<IntegerEnumeration> {
private int id;
private String ad;
I'm trying to save a value selected from the menu to an enum with JSF converter. Can anyone tell me where I went wrong? Thanks in advance.