JSF修剪白色空间

时间:2010-01-08 19:20:30

标签: jsf whitespace trim

HI,

我有一个输入字段,我想在其中修剪任何前导/尾随空格。我们正在使用JSF并使用以下命令将输入​​字段绑定到jsp中的支持bean:

<h:inputText id="inputSN" value="#{regBean.inputSN}" maxlength="10"/>

我的问题是除了验证可以在jsp中完成吗?我知道我们也可以使用Handler中的trim()java函数来做到这一点,但只是想知道在JSF中是否有更优雅的方法来实现它。

感谢。

5 个答案:

答案 0 :(得分:6)

您可以使用Convertertutorial)。

答案 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;
}
相关问题