HI,
我有一个输入字段,我想在其中修剪任何前导/尾随空格。我们正在使用JSF并使用以下命令将输入字段绑定到jsp中的支持bean:
<h:inputText id="inputSN" value="#{regBean.inputSN}" maxlength="10"/>
我的问题是除了验证可以在jsp中完成吗?我知道我们也可以使用Handler中的trim()java函数来做到这一点,但只是想知道在JSF中是否有更优雅的方法来实现它。
感谢。
答案 0 :(得分:6)
答案 1 :(得分:4)
正如McDowell和BalusC所建议的那样,您可以创建一个转换器,并使用@FacesConvert注释为String类注册它。然后在getAsObject方法中检查UIComponent类型并仅对HtmlInputText组件应用修剪。
@FacesConverter(forClass = String.class)
public class StringTrimConverter implements Serializable, javax.faces.convert.Converter {
@Override
public Object getAsObject(FacesContext context, UIComponent cmp, String value) {
if (value != null && cmp 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;
}
}
答案 2 :(得分:2)
我回答了类似的问题here
基本上你可以创建自己的组件,它是自动修剪的inputText的副本,或者你可以扩展inputText并添加如果为true则修剪的trim
属性。
答案 3 :(得分:1)
我在执行任何处理之前只使用处理程序中的trim()函数解决了这个问题。它似乎是最直接的做法。
答案 4 :(得分:0)
一个想法:
public String getTexto() {
return texto != null ? texto.trim() : null;
}