JSF- Custom Converter

Custom converter lar JSF tarafında halihazırda bulunan converter ların yetmediği durumlarda kullanılır. Bu durumda kendinizi özel ceviriciler yazmanız gerekir.

Converterlar;

Var olan converter ların yeterli gelmediği durumlarda kullanılır.
Sınıflar için uygulanabilirler.
Sınıfların arayüz tarafında gösterimini saglayabilirler.


Converter Sınıfı
getAsObject -Obje değeri
getAsString -Karakter değeri

    public Object getAsObject(FacesContext context, UIComponent component,String value)
    public String getAsString(FacesContext context, UIComponent component,Object value)


Ornek pojo

    public class PhoneNumber {
     String code;
     String number;
     //Setter getter …
     @Override
     public String toString() {
      return code +" "+number;
     }
    }


Ornek converter sınıfı

    public class PhoneConverter implements Converter {
     public Object getAsObject(FacesContext context, UIComponent component, String value) {
      if (value == null || value.equals("")) {
       return null;
      }
      String[] s = value.split(" "); //532 1232244
      PhoneNumber phone = new PhoneNumber();
      phone.setCode(s[0]);
      phone.setNumber(s[1]);
      return phone;
     }
     public String getAsString(FacesContext context, UIComponent component,Object value) {
      return value.toString();
     }
    }

faces-config.xml converter tanımı

    <converter>
     <converter-id>phoneNumber</converter-id>
     <converter-class>PhoneConverter</converter-class>
    </converter>
    <h:form>
     <h:inputText value="#{demo.testValue}">
      <f:converter converterId="phoneNumber"/>
     </h:inputText>
     <h:commandButton action="#{demo.testAction}" value="Test" />
     <br />
     <h:messages />
    </h:form>
No comments yet.

Leave a comment

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>