struts1 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校验用户输入的数据是否遵照一定的规则,这个规则由开发者在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开头,以任意数字字符结尾的一个串.
这个校验器校验字段是否在一个数字范围内.
例子:
?????? <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校验器校验一个字符串的最大长度,它需要两个参数,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>
这个校验器类似于上面的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>
这个校验器校验电子邮件字段,当用户输入的电子邮件地址不合法的时候,校验器抛出异常.
例子:
?????? <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"/>
<field property="zipCode" depends="mask"> <arg0 key="pre.displayname0"/> <var> <var-name>mask</var-name> <var-value>^\d{5}\d*$</var-value> </var></field>
<field property="mail" depends="email"> <arg0 key="pre.displayname0"/></field>
<field property="cardnumber" depends="creditCard"> <arg0 key="pre.displayname0"/></field>
<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>
<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>
<field property="date" depends="date"> <arg0 key="pre.displayname0"/> <var> <var-name>datePattern</var-name> <var-value>MM/dd/yyyy</var-value> </var></field>
<field property="number" depends="integer"> <arg0 key="pre.displayname0"/></field>