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总是得到一个值。但是当我将转换器修改为:

@FacesConverter(forClass=SnaCarrera.class)

添加 forClass 解决了我的问题,我不知道为什么会这样。inputText 是否试图在不添加转换器属性的情况下找到转换器?

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 回答