【问题标题】:JSF validation for required fields必填字段的 JSF 验证
【发布时间】:2011-08-14 07:19:33
【问题描述】:

假设我们有一个包含一些字段必需和一些不是(可选)的表单。
现在当我们说字段是必需的,那么验证器只会验证 输入,但不会先修剪输入然后验证。

为了解决这个问题,我编写了一个在表单提交时调用的 javascript 函数。 但它也会验证可选字段。

向所有输入字段添加转换器并不优雅。
他们也是我可以覆盖必需验证过程的任何方式。
或者我如何识别 javascript 中的可选输入字段。

那么正确的方法是什么。

使用 JSF 1.2

【问题讨论】:

    标签: jsf validation


    【解决方案1】:

    如果您在<converter-for-class> 而不是<converter-id> 上注册转换器,那么它将应用于所有值类型。

    <converter>
        <converter-for-class>java.lang.String</converter-for-class>
        <converter-class>com.example.EmptyToNullConverter</converter-class>
    </converter>
    

    public class EmptyToNullConverter implements Converter {
    
        @Override
        public Object getAsObject(FacesContext facesContext, UIComponent component, String value) {
            if (value == null || value.trim().length() == 0) {
                if (component instanceof EditableValueHolder) {
                    ((EditableValueHolder) component).setSubmittedValue(null);
                }
                return null;
            }
            return value;
        }
    
        @Override
        public String getAsString(FacesContext facesContext, UIComponent component, Object value) {
            return value == null ? null : value.toString();
        }
    
    }
    

    无需在每个组件上注册。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-16
      • 2012-05-23
      • 2013-03-23
      • 1970-01-01
      • 1970-01-01
      • 2010-11-26
      相关资源
      最近更新 更多