2016-09-18 6 views
0

イム - 単にそのよう:Converterを使用したOutputTextは機能しません - なぜですか? outputTextを変換しようと

<h:form> 
    <h:inputText value="#{someBean.name}"/> 
    <h:outputText value="#{someBean.name}" converter="com.java.ee.jsf.TextToStringConverter"/> 
    <h:commandButton value="submit" action="#{someBean.doSecond()}"/> 
</h:form> 

ConverterClass:

@FacesConverter("com.java.ee.jsf.TextToStringConverter") 

    public class TextToStringConverter implements Converter { 

     @Override 
     public Object getAsObject(FacesContext context, UIComponent component, String value) { 
      System.out.println("String: " + component); 
      return value; 
     } 

     @Override 
     public String getAsString(FacesContext context, UIComponent component, Object value) { 
      return (String) value; 
     } 

    } 

SomeBeanクラス:

@Model 
public class SomeBean { 

    private String name; 
    private int id; 
    private Double someNumber; 
    private Date someDate; 

blic int getId() { 
     return id; 
    } 

    public void setId(int id) { 
     this.id = id; 
    } 

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

    public Double getSomeNumber() { 
     return someNumber; 
    } 

    public void setSomeNumber(Double someNumber) { 
     this.someNumber = someNumber; 
    } 

    public Date getSomeDate() { 
     System.out.println(someDate); 
     return someDate; 
    } 

    public void setSomeDate(Date someDate) { 
     this.someDate = someDate; 
    } 

public void doSecond() { 
     System.out.println("doSecond"); 
     System.out.println("name: " + name); 
     System.out.println("id: " + id); 
     System.out.println("someNumber: " + someNumber); 
    } 
} 

イム・ビーンのプロパティに入力する文字列をしようname<h:inputtext/>とし、<h:outputtext/>で印刷しますが、TextToStringConverterで変換してください。しかし、コンバーターは決して呼び出されないようです - 私は何かを逃したのですか?

答えて

1

出力テキストにコンバータを定義しました。したがって、getAsString()メソッドを呼び出す必要があります。この方法ではSystem.out.printlnがありません。たぶんあなたがコンバータが呼び出されていないと思っている理由です。

コードが正しいと思われます。

関連する問題