首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

struts1 validator证验器简介以及用法

2012-09-13 
struts1 validator验证器简介以及用法Required Validator这个校验器用来校验Form的输入数据不能为空.如果

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是指定这个字段的名字,第二个和第三个参数指定范围的最大和最小值,分别的名称是max和min.

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>

?另,from:http://www.javaworld.com.tw/confluence/pages/viewpage.action?pageId=627Validator內建了許多基本驗證器,以下說明幾個常用的驗證器作用與基本設定方式: 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>

热点排行