0

まず、コードを示します。

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 を追加すると問題が解決しますが、なぜこれが起こるのかわかりません。入力テキストは、コンバーター プロパティを追加せずにコンバーターを見つけようとしていますか?

4

1 に答える 1

1

まず第一に、SelectItemsConverterはです<f:selectItems>。では<p:inputText>ありません<f:selectItems>。したがって、SelectItemsConverterは役に立たない<p:inputText>。そのドキュメントとショーケースも参照してください。

Converter次に、それを使用するために、実装にIDまたは「for-class」を与えるのが通常です。そうしないと、<x:inputSomething converter>属性や<f:converter>タグで参照したり、特定のクラスに自動関連付けしたりすることができません。この要件は、とはまったく関係ありませんSelectItemsConverter。これは、標準のJSF仕様で必要なだけです。

于 2012-07-13T18:47:31.910 に答える