编写验证规则
我们有三种编写验证规则的方式:
1.
每一个Action 类:验证文件名为
ActionName-validation.xml (其中ActionName就是你的类名).
2.
每一个Action 别名:
验证文件名为ActionName-alias-validation.xml(其中ActionName就是你的类名).
3.
继承或者实现了Action接口的类:XWork 将搜索这个action 的继承关系树,找到Action 的父类和接口默认的验证器.
下面是一个简单的验证规则文件示例SimpleAction-validation.xml:
<!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.3//EN"
"http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
<validators>
<field name="bar">
<field-validator type="required">
<message>You must enter a value for bar.</message>
</field-validator>
<field-validator type="int">
<param name="min">6</param>
<param name="max">10</param>
<message>bar must be between ${min} and ${max}, current value is ${bar}.</message>
</field-validator>
</field>
<field name="bar2">
<field-validator type="regex">
<param name="expression">[0-9],[0-9]</param>
<message>The value of bar2 must be in the format "x, y", where x and y are between 0 and 9</message>
</field-validator>
</field>
<field name="date">
<field-validator type="date">
<param name="min">12/22/2002</param>
<param name="max">12/25/2002</param>
<message>The date must be between 12-22-2002 and 12-25-2002.</message>
</field-validator>
</field>
<field name="foo">
<field-validator type="int">
<param name="min">0</param>
<param name="max">100</param>
<message key="foo.range">Could not find foo.range!</message>
</field-validator>
</field>
<validator type="expression">
<param name="expression">foo lt bar </param>
<message>Foo must be greater than Bar. Foo = ${foo}, Bar = ${bar}.</message>
</validator>
</validators>
这个文件为SimpleAction配置了一些验证器.验证器(属性验证器)必须有一个"type" 属性,这个属性值引用了我们在ValidatorFactory中注册的验证器的名称.Validator 元素也可以有param元素,这个元素name 和 value 两个属性,我们可以设置任意的参数值.通常我们可以在相应的验证器类中找到属性的名称.嘿嘿.
注意:
在这里,
Action Alias 引用的是struts2配置文件中的action的名称, 通常,name 属性跟方法名是一样的,但是也不绝对.