`
271788203
  • 浏览: 490079 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

validation mask & date

阅读更多

常量有两种:一种是全局范围常量。一种是某个formset范围的常量。位置如下:
格式如下:
<form-validation>
    <global>
        <constant>
            <constant-name>globalVarName</constant-name>
            <constant-value>globalVarValue</constant-value>
        </constant>
    </global>
    <formset>
        <constant>
            <constant-name>formsetVarName</constant-name>
            <constant-value>formsetVarValue</constant-value>
        </constant>      
        <form name="MyForm">
            <field property="myfield"
                    depends="someRule,anotherRule">
                <var>
                    <var-name>someRule</var-name>
                    <var-value>${globalVarName}</var-value>
                </var>
                <var>
                    <var-name>anotherRule</var-name>
                    <var-value>${formsetVarName}</var-value>
                </var>
            </field>
        </form>
    <formset>
<form-validation>
如果你有多个field元素要用到同一个值,则可以定义一个这个值的常量,这样就可以应用这个常量了
如果这个常量作用于整个应用程序则生命为global范围的常量。如果这个常量只作用于某个特定的form且被重复使用,则的定义它为formset 范围的常量。举例如下:
<form-validation>
    <global>
        <constant>
            <constant-name>usernameMinLength</constant-name>
            <constant-value>7</constant-value>
        </constant>
    </global>
    <formset>
        <constant>
            <constant-name>nameMaxLength</constant-name>
            <constant-value>40</constant-value>
        </constant>      
        <form name="RegistrationForm">
            <field property="username"
                    depends="required,minlength">
                <arg key="prompt.username"/>
                <arg key="${var:minlength}" name="minlength"
                   resource="false"/>
                <var>
                    <var-name>minlength</var-name>
                    <var-value>${usernameMinLength}</var-value>
                </var>
            </field>
            <field property="firstName"
                    depends="required,maxlength">
                <arg key="prompt.firstName"/>
                <arg key="${var:maxlength}" name="maxlength"
                   resource="false"/>
                <var>
                    <var-name>maxlength</var-name>
                    <var-value>${nameMaxLength}</var-value>
                </var>
            </field>
            <field property="lastName"
                    depends="required,minlength,maxlength">
                <arg key="prompt.lastName"/>
                <arg key="${var:minlength}" name="minlength"
                   resource="false"/>
                <arg key="${var:maxlength}" name="maxlength"
                   resource="false"/>
                <var>
                    <var-name>minlength</var-name>
                    <var-value>2</var-value>
                </var>
                <var>
                    <var-name>maxlength</var-name>
                    <var-value>${nameMaxLength}</var-value>
                </var>
            </field>
        </form>
    <formset>
<formset-validation>
如果你使用mask验证规则严整表单的格式时,你只需要在一处定义这个格式的正则表达式。
n          用正则表达式验证表单字段
mask验证规则提供了基于正则表达式的验证机制,如:
<form name="ValidationTestForm">
    <!-- Validate Social Security Number -->
    <field property="ssn"
            depends="required,mask">
        <arg key="prompt.ssn"/>
        <var>
            <var-name>mask</var-name>
            <var-value>^[0-9]{3}-[0-9]{2}-[0-9]{4}$</var-value>
        </var>
    </field>
</form>
正则表达式使用通用符号描述并解析文本,使用它你可以验证数据是否符合指定的格式。
STRUTS框架通过mask验证规则使用正则表达式。可以在var元素中指定正则表达式。
<var>
    <var-name>mask</var-name>
    <var-value>^[0-9]{3}-[0-9]{2}-[0-9]{4}$</var-value>
</var>
name属性必须是maskvalue指定要使用的正则表达式。如果匹配则通过验证,否则验证失败。

 

如果你使用struts1.1及以后的版本,那么正则表达式必须以“^”开头,以“$”结尾。
 

 

 
 

举例:
^[0-9]{3}-[0-9]{2}-[0-9]{4}$
理解如下:
开头一个开头符号(^),,接着是三个0到9的字符({3}),接着是连接符号,接着是两个0到9的字符([0-9]),接着是一个连接符号(-),接着是四个0到9的字符([0-9]),,接着是一个结束符号($).
n          requiredif:
struts1.1Z中,如果一个字段的验证依赖于另一个字段,可用requiredif验证规则。
举例如下:
<!-- zipCode is required if city is null or state is null -->
<field property="zipCode" depends="requiredif">
    <arg key="prompt.zipCode"/>
    <var>
        <var-name>field[0]</var-name>
        <var-value>city</var-value>
    </var>
    <var>
        <var-name>fieldTest[0]</var-name>
        <var-value>NULL</var-value>
    </var>
    <var>
        <var-name>field[1]</var-name>
        <var-value>state</var-value>
    </var>
    <var>
        <var-name>fieldTest[1]</var-name>
        <var-value>NULL</var-value>
    </var>
    <var>
        <var-name>fieldJoin</var-name>
        <var-value>OR</var-value>
    </var>
</field>
citystate的值为空或不存在时,zipCode不能为空。

 

客户端不能进行requiredif验证
 

 

 

struts1.1前要实现这样的功能必须自己写代码进行验证。
field[i]对应的var-value值代表一个表单属性:
<var>
    <var-name>field[0]</var-name>
    <var-value>property name</var-value>
</var>
fieldTest[i]代表测试类型:
<var>
    <var-name>fieldTest[i]</var-name>
    <var-value>test type</var-value>
</var>
测试类型有以下三种:
NULL
字段为NULL或空字符串
NOTNULL
字段不为NULL或空字符串
EQUAL
字段值为一个指定的值
 
如果测试类型为EQUAL,则还需定义一个元素fieldValue[i]:
<var>
    <var-name>fieldValue[i]</var-name>
    <var-value>literal value</var-value>
</var>
如果这个属性是一个数字的,则字面值将被转换为数值。否则字面值将当作一个字符串。
如果依赖多个字段,则须用fieldJoin变量确定这多个字段的逻辑关系:
<var>
    <var-name>fieldJoin</var-name>
    <var-value>logical operator</var-value>
</var>
合法的value值为ANDORAND表示所有依赖的字段都必须符合fieldTest规定的类型时,要验证的数据不为空;OR表示所依赖的字段有一个符合要求时要验证的数据不为空。
struts1.2中,requiredif已被validwhen代替。
n          validwhen
如下例表示当下列事实发生时,zipCode合法有效:
1.       citystate属性不为空
2.       zipCode不为空
<form name="AddressForm">
 <field property="zipCode" depends="validwhen">
      <arg key="prompt.zipCode"/>
      <var>
          <var-name>
              test
          </var-name>
          <var-value>
              (((city != null) and (state != null)) or (*this* != null))
          </var-value>
      </var>
 </field>
<form name="AddressForm">
validwhenrequiredif功能更强大。requiredif表示“如果。。。这个字段不为空”。validwhen表示“当。。。时这个字段有效”。

 

当你使用这个验证时,请确保验证结果能为 true
 

 

 
 

*this*符号表示要验证的字段zipCode
完整的举例如下:
n          struts-config.xml:
    <action
      attribute="checkForm"
      name="checkForm"
      input="/validate/error.jsp"
      path="/validate/check"
      scope="request"
      type="cn.rolia.struts.action.validate.CheckAction">
      <forward name="success" path="/validate/success.jsp" />
    </action>
    <form-bean name="checkForm" type="org.apache.struts.validator.DynaValidatorForm">
      <form-property name="zipCode" type="java.lang.String" />
      <form-property name="province" type="java.lang.String" />
      <form-property name="city" type="java.lang.String" />
    </form-bean>
n         CheckAction.java:
    public ActionForward execute(ActionMapping mapping, ActionForm form,
           HttpServletRequest request, HttpServletResponse response) {
       DynaValidatorForm checkForm = (DynaValidatorForm) form;// TODO Auto-generated method stub
       return mapping.findForward("success");
    }
}
n         ApplicationResources.properties:
prompt.zipCode= zipCode
errors.required={0} is required.
/validate/error.jsp:
 <body>
    <html:errors/><br>
 </body>
n         /validate/input.jsp:
      <html:form action="/validate/check">
        <table>
          <tr>
            <td>所在省</td><td><html:text property="province"></html:text></td>
          </tr>
          <tr>
            <td>所在市</td><td><html:text property="city"></html:text></td>
          </tr>
          <tr>
            <td>邮政编码</td><td><html:text property="zipCode"></html:text></td>
          </tr>
          <tr>
            <td><html:submit value="提交"/></td><td><html:reset value="清除"/></td>
          </tr>
        </table>
      </html:form>
n         /validate/success.jsp:
 <body>
 success<br>
    <bean:write name="checkForm" property="zipCode"/><br>
 </body>
validation.xml:
        <form name="checkForm">
          <field property="zipCode" depends="validwhen">
                <arg0 key="prompt.zipCode"/>
                <var>
                     <var-name>
                     test
                 </var-name>
                     <var-value>
                         (((city != null) and (province != null)) or (*this* != null))
                     </var-value>
                </var>
          </field>
       </form>
n         indexedListProperty
时间验证 date
希望验证一个时间字段是否符合某个特定的格式时使用date验证规则。如:
<field property="date1" depends="date">
    <arg key="Date1" resource="false"/>
    <var>
        <var-name>datePattern</var-name>
        <var-value>MM/dd/yyyy</var-value>
    </var>
</field>
 
<field property="date2" depends="date">
    <arg key="Date2" resource="false"/>
    <var>
        <var-name>datePatternStrict</var-name>
        <var-value>MM/dd/yyyy</var-value>
    </var>
</field>
 
<field property="dateTime" depends="date">
    <arg key="DateTime" resource="false"/>
    <var>
        <var-name>datePattern</var-name>
        <var-value>MM/dd/yy HH:mm</var-value>
    </var>
</field>
datePattern变量通过使用java.text.SimpleDateFormat指定字段的格式。
如果SimpleDateFormat能将字段值转换为日期格式,则验证通过,否则验证失败。
datePatternStrict要求字段值的长度要与模式的长度相同。
如模式为MM/dd/yyyy,则字段值5/10/1963代表May 10, 1963。如果使用datePattern则验证通过。如果使用datePatternStrict则验证不通过,因为也的部分是一个数字而不是格式指定的两个。
你可以使用mask验证对时间进行工详细的控制。

分享到:
评论

相关推荐

    基于模型开发的MATLAB simulink validation and verification(V&V)

    "基于模型开发的MATLAB Simulink Validation and Verification(V&V)"这个主题,着重探讨的是在Simulink环境中如何有效地进行模型的验证和确认,以确保设计的准确性和合规性。 验证(Validation)是确认模型是否...

    伯克利大学机器学习-11Bootstrap&cross-validation&ROC plots Michael Jordan

    ● Bootstrap Methods and their Applications. A, Davison and D. Hinkley. ● The Elements of Statistical Learning. T....Tibshirani and J. H....● ROC Graphs: Notes and Practical Considerations for ...

    jakarta.validation-api-2.0.2-API文档-中文版.zip

    赠送jar包:jakarta.validation-api-2.0.2.jar; 赠送原API文档:jakarta.validation-api-2.0.2-javadoc.jar; 赠送源代码:jakarta.validation-api-2.0.2-sources.jar; 赠送Maven依赖信息文件:jakarta.validation...

    使用FormValidation进行表单验证

    `FormValidation`是一个强大的JavaScript库,它结合了`jQuery`和`Bootstrap`框架,使得表单验证变得更加简单易用。本文将详细介绍如何使用`FormValidation`进行表单验证,并探讨与`jQuery`和`Bootstrap`的集成。 ...

    validation-api-2.0.1.Final-API文档-中文版.zip

    赠送jar包:validation-api-2.0.1.Final.jar; 赠送原API文档:validation-api-2.0.1.Final-javadoc.jar; 赠送源代码:validation-api-2.0.1.Final-sources.jar; 赠送Maven依赖信息文件:validation-api-2.0.1....

    K-Fold Cross Validation with & without Random Shuffle Data:此函数创建两个单元阵列,一个包含训练数据,另一个包含测试数据。-matlab开发

    此函数创建两个元胞数组,一个包含训练数据,另一个包含测试数据。 测试样本大小由样本数除以所需的 K 值确定。 如果这些项不可整除,该函数将截断... 引用: https://en.wikipedia.org/wiki/Cross-validation_(统计)

    FormValidation.js

    **FormValidation.js 知识点详解** `FormValidation.js` 是一个强大且灵活的JavaScript库,专门用于前端表单验证。它提供了丰富的校验规则、样式定制以及对动态添加元素的验证支持,使得开发者能够轻松地创建高效、...

    FormValidation完整源码和演示

    FormValidation是一款功能强大的前端表单验证框架,专为开发者提供高效、灵活的验证解决方案。它以其高度可定制性,对HTML data属性的完美支持以及内置的自定义验证器功能而备受推崇。本资源包含了FormValidation的...

    jakarta.validation-api-2.0.1-API文档-中文版.zip

    赠送jar包:jakarta.validation-api-2.0.1.jar; 赠送原API文档:jakarta.validation-api-2.0.1-javadoc.jar; 赠送源代码:jakarta.validation-api-2.0.1-sources.jar; 赠送Maven依赖信息文件:jakarta.validation...

    validation-api-2.0.1.Final-API文档-中英对照版.zip

    赠送jar包:validation-api-2.0.1.Final.jar; 赠送原API文档:validation-api-2.0.1.Final-javadoc.jar; 赠送源代码:validation-api-2.0.1.Final-sources.jar; 赠送Maven依赖信息文件:validation-api-2.0.1....

    Validation3个jia包 validation-api,hibernate-validator

    `Validation`是Java世界中用于验证对象的有效性的一种机制,它使得我们可以方便地定义和执行数据验证规则。在给定的标题和描述中提到了三个重要的JAR包:`validation-api`, `hibernate-validator`以及`jboss-logging...

    jakarta.validation-api-2.0.1-API文档-中英对照版.zip

    赠送jar包:jakarta.validation-api-2.0.1.jar; 赠送原API文档:jakarta.validation-api-2.0.1-javadoc.jar; 赠送源代码:jakarta.validation-api-2.0.1-sources.jar; 赠送Maven依赖信息文件:jakarta.validation...

    validation jar包

    首先,`validation-api.jar`是Java Bean Validation API的标准实现,定义了一套标准的验证注解,如`@NotNull`, `@Min`, `@Max`等。`validation-api-1.1.0.beta1.jar`是这个API的一个版本,包含了用于验证对象的规范...

    Handbook for Robustness Validation of Automotive Electrical Electronic Modules

    It is recommended that the robustness of semiconductor devices and other components used in the EEM be assured using SAE J1879 OCT2007, Handbook for Robustness Validation of Semiconductor Devices in ...

    jQuery Validation Engine ( jQuery 表单验证插件)

    jQuery Validation Engine是一款强大的JavaScript库,专门用于实现网页表单的验证功能。它是基于流行的JavaScript库jQuery构建的,为开发者提供了一种优雅的方式来处理用户输入的数据验证。这个插件以其高度可定制性...

    javax.validation-1.0.0.GA.jar

    "javax.validation-1.0.0.GA.jar"是一个关键的组件,它提供了Java约束验证API,是Java Bean Validation规范的实现,允许开发者在业务逻辑层对输入数据进行验证。 Java Bean Validation(JSR 303)是一种标准,定义...

    FormValidation.rar

    《FormValidation:高效表单验证的利器》 在Web开发中,表单验证是一个不可或缺的环节,它确保了用户输入的数据符合预设的规范,从而维护数据的完整性和安全性。"FormValidation"是一款专为此目的设计的强大工具,...

    validation

    标题中的"validation"指的是在软件开发中的一种关键过程——验证,它是确保数据、输入或程序状态正确无误的重要步骤。在Java编程语言中,验证通常用于校验用户输入、对象属性或其他数据源,以防止错误的数据导致程序...

    Bean Validation 规范文档

    《Bean Validation规范详解》 Bean Validation是Java平台上用于对象验证的一种标准,旨在提供一种简单而强大的方式来确保Java Bean对象的正确性和完整性。本规范文档深入解析了Bean Validation的各个方面,包括其...

    jquery-validation-1.17.0

    《jQuery Validation插件详解——基于版本1.17.0》 jQuery Validation是Web开发中一个广泛使用的JavaScript库,主要用于表单验证。该插件以其简单易用和强大的功能著称,大大简化了前端数据验证的过程。在本文中,...

Global site tag (gtag.js) - Google Analytics