2012-07-13 105 views
0

首先,我告訴我的代碼:JSF的inputText +轉換

XHTML頁面:

<h:body> 
    <h:form id="ffffffffff"> 
     <p:inputText value="#{prueba.dato}" > 
      <p:ajax event="keyup" process="@this" /> 
     </p:inputText> 
    </h:form> 
</h:body> 

豆:

@ManagedBean 
@ViewScoped 
public class Prueba implements Serializable { 

    private String dato = "ASSSS"; 

    public String getDato() { 
     return dato; 
    } 

    public void setDato(String dato) { 
     this.dato = dato; 

     System.out.println("DAAAAAA: " + dato); 
    } 

    public void listener() { 
     System.out.println("LISTENEEEEEEEEEEEEEEEEEEEEEEEEEE"); 
    } 
} 

轉換

@FacesConverter 
public class SnaCarreraConverter extends SelectItemsConverter { 
    //CODE 
} 

我的問題,setDato總是得到一個null值。但是,當我修改器這樣:

@FacesConverter(forClass = SnaCarrera.class)

加入forClass解決我的問題,我不知道爲什麼會這樣。 InputText是否在不添加轉換器屬性的情況下嘗試查找Converter?

回答

1

首先,該SelectItemsConverter<f:selectItems><p:inputText>不是<f:selectItems>。所以SelectItemsConverter是無用的<p:inputText>。另見它的文檔和展示。

其次,爲了使用它,給Converter實現一個ID或「for-class」是正常的。否則,您無法在<x:inputSomething converter>屬性或<f:converter>標記中引用它,或者無法將其與某個類自動關聯。這個要求與SelectItemsConverter完全無關。這只是標準的JSF規範所要求的。