JSF inputtext + Converter

时间:2012-07-13 17:05:59

标签: jsf converter

首先,我展示了我的代码:

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是否在没有添加转换器属性的情况下尝试查找转换器?

1 个答案:

答案 0 :(得分:1)

首先,SelectItemsConverter适用于<f:selectItems><p:inputText>不是<f:selectItems>。因此SelectItemsConverter<p:inputText>毫无用处。另见其文档和展示。

其次,为Converter实现提供ID或“for-class”以便使用它是正常的。否则,您无法在<x:inputSomething converter>属性或<f:converter>标记中引用它,或者您无法将其与某个类自动关联。此要求与SelectItemsConverter完全无关。这只是标准JSF规范的要求。