使用转换器在JSF中修剪字符串?

使用转换器在JSF中修剪字符串?,jsf,primefaces,Jsf,Primefaces,我正在尝试编写一个简单的转换器,它从应用程序中获取输入值,并对其进行修剪,然后将其发送到服务器 问题是getAsObject方法根本没有从UI调用,下面是我的代码 @FacesConverter(value = "stringTrimConverter") public class StringTrimConverter implements Serializable, javax.faces.convert.Converter { /** *

我正在尝试编写一个简单的转换器,它从应用程序中获取输入值,并对其进行修剪,然后将其发送到服务器

问题是getAsObject方法根本没有从UI调用,下面是我的代码

@FacesConverter(value = "stringTrimConverter")
public class StringTrimConverter implements Serializable, javax.faces.convert.Converter {

    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    @Override
    public Object getAsObject(FacesContext context, UIComponent comp, String value) {
        if (value != null && comp instanceof HtmlInputText) {
            // trim the entered value in a HtmlInputText before doing validation/updating the model
            return value.trim();
        }
        return value;
    }

    @Override
    public String getAsString(FacesContext context, UIComponent cmp, Object value) {
        if (value != null) {
            // return the value as is for presentation
            return value.toString();
        }
        return null;
    }
}
用户界面端代码

 <p:inputText id="title" maxlength="900"    readonly="true" value="#{citationModel.title}">
                        <f:converter converterId="stringTrimConverter" />
    </p:inputText>

引证模型。标题是字符串类型

其中只调用了getAsString


您的输入被标记为只读。为什么它要更新模型值?为什么对于只读输入,您会信任提交的值高于现有值?