使用转换器在JSF中修剪字符串?
我正在尝试编写一个简单的转换器,它从应用程序中获取输入值,并对其进行修剪,然后将其发送到服务器 问题是getAsObject方法根本没有从UI调用,下面是我的代码使用转换器在JSF中修剪字符串?,jsf,primefaces,Jsf,Primefaces,我正在尝试编写一个简单的转换器,它从应用程序中获取输入值,并对其进行修剪,然后将其发送到服务器 问题是getAsObject方法根本没有从UI调用,下面是我的代码 @FacesConverter(value = "stringTrimConverter") public class StringTrimConverter implements Serializable, javax.faces.convert.Converter { /** *
@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
您的输入被标记为只读。为什么它要更新模型值?为什么对于只读输入,您会信任提交的值高于现有值?