【问题标题】:JSF trimming white spacesJSF 修剪空白
【发布时间】:2010-01-08 19:20:29
【问题描述】:

嗨,

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

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

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

谢谢。

【问题讨论】:

  • 我通过在处理程序中使用 trim() 函数解决了这个问题,然后再进行任何处理。感谢 McDowell 的替代想法。

标签: jsf whitespace trim


【解决方案1】:

您可以使用Converter (tutorial)。

【讨论】:

  • 并将其注册到converter-for-class for java.lang.String,这样您就不需要在每个UIInput 组件上定义它。
  • @Martlark - 它是faces-config.xml 中使用的元素。来自规范:/faces-config/converter -- 使用此 Web 应用程序的应用程序实例创建或替换转换器 id/转换器类或目标类/转换器类对。 另外:“ converter-for-class”元素表示将为其注册 Converter 类的完全限定类名。有关更多信息,请参阅 JSF 规范。
【解决方案2】:

按照 McDowell 和 BalusC 的建议,您可以创建一个 Converter,并使用 String 类的 @FacesConvert 注释注册它。然后在 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;
    }

}

【讨论】:

【解决方案3】:

我回答了类似的问题here

基本上,您可以创建自己的组件,它是 inputText 的副本,它会自动修剪,或者您可以扩展 inputText 并添加 trim 属性,如果为 true,则修剪。

【讨论】:

    【解决方案4】:

    在进行任何处理之前,我只使用处理程序中的 trim() 函数解决了这个问题。这似乎是最直接的方式。

    【讨论】:

      【解决方案5】:

      一个想法:

      public String getTexto() {
          return texto != null ? texto.trim() : null;
      }
      

      【讨论】:

        猜你喜欢
        • 2018-08-26
        • 2017-03-16
        • 2010-11-14
        • 2011-05-07
        • 1970-01-01
        • 1970-01-01
        • 2012-10-11
        • 2011-05-01
        • 2014-03-06
        相关资源
        最近更新 更多