0
<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.

Jasper de Vries
  • 19,370
  • 6
  • 64
  • 102

0 Answers0