struts1 validator验证器简介以及用法

Required Validator

这个校验器用来校验Form的输入数据不能为空.如果某一个Form Field 依赖于这个校验器,那么如果用户在Form中没有输入这个Field对应的输入数据时,Required校验器将会触发一个Exception,这个Exception的错误信息可以在页面或者服务端被捕捉到.

例子:

       <field    property="test" depends="required">

              <msg name="required" key="test.required"/>

              <arg0 key="test.testField.displayName"/>

       </field>

上面的例子说明了test字段的校验规则是不能为空,ApplicationResources.properties中的相应的定义信息可能是下面这样的情况:

Test.testField.displayName =测试字段 #上面在<arg0>标记中定义的key= “test.testField” 对应这个信息

Test.required={0} 不能为空,请重新输入. #在上面定义的<msg>标记对应这个信息

如果Validator校验到用户没有输入test这个字段,就会将test.testField对应的信息作为test.required的参数传递给校验器,如果在JSP页面中捕捉了错误信息,错误信息将会是下面的这个形式:

       “测试字段 不能为空,请重新输入

Mask Validator

Mask Validator校验用户输入的数据是否遵照一定的规则,这个规则由开发者在validator.xml文件中定义.

例子:

<field property="postalCode" depends="mask">

<arg0 key="test.postalCode.displayname"/>

<arg1 name=”mask” key="${var:mask}" resource="false"

<var>

<var-name>mask</var-name>

<var-value>^0\d*$</var-value>

</var>

</field>

上面的<arg1>标记说明了这个校验的第二个参数是定义在下面的<var>标记的名为mask的值.<var-value>的值说明了这个字段必须是以数字0开头,以任意数字字符结尾的一个串.

Range Validator

这个校验器校验字段是否在一个数字范围内.

例子:

       <field property="age" depends="range">

              <msg name="range" key="test.rang"/>

              <arg0 key="test.age"/>

              <arg1 name="range" key="${var:min}" resource="false"/>

              <arg2 name="range" key="${var:max}" resource="false"/>

              <var>

                     <var-name>min</var-name>

                     <var-value>1</var-value>

              </var>

              <var>

                     <var-name>max</var-name>

                     <var-value>100</var-value>

              </var>

       </field>

Range Validator需要三个参数(arg),第一个参数arg0是指定这个字段的名字,第二个和第三个参数指定范围的最大和最小值,分别的名称是maxmin.

Maxlength Validator

Maxlength校验器校验一个字符串的最大长度,它需要两个参数,arg0说明字段的名称,arg1说明最大长度.

例子:

       <field property="password" depends="maxlength">

              <msg name="maxlength" key="test.minlength"/>

              <arg0 key="test.password" />

              <arg1 name="maxlength" key="${var:maxlength}" resource="false" />

              <var>

                     <var-name>maxlength</var-name>

                     <var-value>8</var-value>

              </var>

       </field>

Minlength Validator

这个校验器类似于上面的Maxlength Validator,参数一样,校验规则也一样,只是作为参数的变量名字为minlength

       <field property="password" depends="minlength">

              <msg name="minlength" key="test.minlength"/>

              <arg0 key="test.password" />

              <arg1 name="minlength" key="${var:minlength}" resource="false" />

              <var>

                     <var-name>minlength</var-name>

                     <var-value>8</var-value>

              </var>

       </field>

Email Validator

这个校验器校验电子邮件字段,当用户输入的电子邮件地址不合法的时候,校验器抛出异常.

例子:

       <field    property="email" depends="required,email">

              <msg name="required" key="test.required"/>

              <msg name="email" key="test.error.email"/>

              <arg0 key="test.email"/>

       </field>

 
Validator內建了許多基本驗證器,以下說明幾個常用的驗證器作用與基本設定方式:  required 驗證指定的欄位內容是否填寫,可判定只有空白的情況,設定範例如下:
<field property="email" depends="required"/>

  mask 驗證欄位內容是否符合所設定的regular expression,設定範例如下:
<field property="zipCode" depends="mask">
    <arg0 key="pre.displayname0"/>
    <var>
        <var-name>mask</var-name>
        <var-value>^\d{5}\d*$</var-value>
    </var>
</field>

  email 檢查電子郵件格式,例如:
<field property="mail" depends="email">
    <arg0 key="pre.displayname0"/>
</field>

  creditCard 檢查信用卡號碼格式,例如:
<field property="cardnumber" depends="creditCard">
    <arg0 key="pre.displayname0"/>
</field>

  maxLength、minLength 驗證欄位的字元數是否符合設定的最大長度或最小長度限定,下面是maxLength的設定範例:
<field property="message" depends="maxLength">
    <arg0 key="pre.displayname0"/>
    <arg1 key="pre.displayname1"/>
    <var>
        <var-name>maxLength</var-name>
        <var-value>100</var-value>
    </var>
</field>

  range 驗證欄位的值是否在設定的範圍,例如:
<field property="priority" depends="range">
    <arg0 key="pre.displayname0"/>
    <var>
        <var-name>max</var-name>
        <var-value>100</var-value>
    </var>
    <var>
        <var-name>min</var-name>
        <var-value>0</var-value>
    </var>
</field>

  date 驗證欄位內容是否符合日期格式,例如:
<field property="date" depends="date">
    <arg0 key="pre.displayname0"/>
    <var>
        <var-name>datePattern</var-name>
        <var-value>MM/dd/yyyy</var-value>
    </var>
</field>

  datePattern 不檢查在日期上是否補足0,例如7/23/1978是可以的,如果使用datePatternStrict則要補上0,例如07/23/1978。
  byte、short、integer、long、float、double 檢查欄位值資料型態,例如:
<field property="number" depends="integer">
    <arg0 key="pre.displayname0"/>
</field>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值