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> |
<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>