Struts2提供两种校验规则:字段校验器配置风格和非字段配置风格。
字段校验器的格式:
<validators>
<field name=”被校验的字段名”>
<field-validator type=”校验器类型名”>
<param name=”参数名”>参数值</param>
<!—可以有多个参数-->
<message key=”I8Nkey”>校验失败时的提示信息</message>
</field-validator>
</field>
<!--下一个要校验的字段à
</validators>
字段校验器以<field>元素为基本元素,该元素的name属性用来指定被校验的字段。如果该字段需要多个校验规则,可以使用多个<field>元素来增加校验规则(也就是一个字段多个校验器)。子元素<field-validator>用来指定校验规则,具体使用哪个校验器,这取决与属性type.
<param>元素用来校验器传递参数,可以有多个参数。<message>元素用来指定校验器校验失败是的提示信息,其属性key用来指定国际化信息对应的可以。
非字段校验器配置风格
对于非字段校验器,是以校验器优先进行配置的。在这种情况下,以<validator>为基本元素(当然,根元素仍然是<validators>),在根元素下可以多个<validator>元素,每个<validator>元素的形式如下:
<validator type=”校验器类型名”>
<param name=”fieldName”>需要被校验的字段名称</param>
<!--下面的param元素可以有0个或多个-->
<param name=”参数名”>参数值</param>
<message key=”I8Nkey”>校验失败时的提示信息</message>
</validator>
每一个<validator>元素定义一个校验规则,必须为该元素的type属性指定值,决定使用的校验器的名字。由于校验器配置风格是以校验器优先的,所以还要为校验指定一个被校验的字段,也就是要校验的Action属性,可以在<param name=”fieldName”>元素中指定,另外还可以通过多个<param>元素来向校验器传递一些参数。最后同样用<message>元素来指定校验失败时的提示信息,其属性key用来指定国际化信息 对应的key.
Eg:
<validators>
<validator type=”requiredstring”>
<param name=”fieldName”>name</param>
<message>姓名不能为空!</message>
</validator>
<validator type=”requiredstring”>
<param name=”fieldName”>pass</param>
<message>密码不能为空!</message>
</validator>
</validators>
规定的这些校验规则是在 xwork2-2.0.4.jar中
/com/opensymphony/xwork2/validator/validators/default.xml
<validators>
<validator name="required" class="com.opensymphony.xwork2.validator.validators.RequiredFieldValidator"/>
<validator name="requiredstring" class="com.opensymphony.xwork2.validator.validators.RequiredStringValidator"/>
<validator name="int" class="com.opensymphony.xwork2.validator.validators.IntRangeFieldValidator"/>
<validator name="long" class="com.opensymphony.xwork2.validator.validators.LongRangeFieldValidator"/>
<validator name="short" class="com.opensymphony.xwork2.validator.validators.ShortRangeFieldValidator"/>
<validator name="double" class="com.opensymphony.xwork2.validator.validators.DoubleRangeFieldValidator"/>
<validator name="date" class="com.opensymphony.xwork2.validator.validators.DateRangeFieldValidator"/>
<validator name="expression" class="com.opensymphony.xwork2.validator.validators.ExpressionValidator"/>
<validator name="fieldexpression" class="com.opensymphony.xwork2.validator.validators.FieldExpressionValidator"/>
<validator name="email" class="com.opensymphony.xwork2.validator.validators.EmailValidator"/>
<validator name="url" class="com.opensymphony.xwork2.validator.validators.URLValidator"/>
<validator name="visitor" class="com.opensymphony.xwork2.validator.validators.VisitorFieldValidator"/>
<validator name="conversion" class="com.opensymphony.xwork2.validator.validators.ConversionErrorFieldValidator"/>
<validator name="stringlength" class="com.opensymphony.xwork2.validator.validators.StringLengthFieldValidator"/>
<validator name="regex" class="com.opensymphony.xwork2.validator.validators.RegexFieldValidator"/>
<validator name="conditionalvisitor" class="com.opensymphony.xwork2.validator.validators.ConditionalVisitorFieldValidator"/>
</validators>