Struts2框架校验执行的先后顺序:
a)首先执行校验框架(XML文件)
b)执行自定义方法的校验方法(validateMyExecute)
c)执行validate方法。
1.框架校验的参考文件
A》com/xwork/xwork-validator-1.0.2.dtd 校验器文件XX-validation.xml的规则。
B》com.opensymphony.xwork2.validator.validators下的default.xml文件。默认校验器的属性文件,各种校验validator。校验器文件XX-validation.xml中type的依据。
2.字段优先的校验器
<!DOCTYPE validators PUBLIC
"-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<!-- 以下的标签都是根据com/xwork/xwork-validator-1.0.2.dtd的定义,而type属性值是根据上述default.xml确定-->
<field name="username">
<field-validator type="requiredstring">
<message key="username.invalidate"></message>
</field-validator>
<field-validator type="stringlength">
<param name="minLength">4</param>
<param name="maxLength">6</param>
<message>username must between ${minLength} and ${maxLength}!</message>
</field-validator>
</field>
<field name="password">
<field-validator type="requiredstring">
<message>password can't be blank!</message>
</field-validator>
<field-validator type="stringlength">
<param name="minLength">4</param>
<param name="maxLength">6</param>
<message>password must between ${minLength} and ${maxLength}!</message>
</field-validator>
</field>
<field name="age">
<field-validator type="required">
<message>age can't be blank!</message>
</field-validator>
<field-validator type="int">
<param name="min">10</param>
<param name="max">100</param>
<message>age must between ${min} and ${max}!</message>
</field-validator>
</field>
<field name="birthday">
<field-validator type="required">
<message>birthday can't be blank!</message>
</field-validator>
<field-validator type="date">
<param name="min">2015-1-1</param>
<param name="max">2017-12-31</param>
<message>birthday must between ${min} and ${max}!</message>
</field-validator>
</field>
3. 校验器优先的校验器。
<validator type="requiredstring">
<paramname="fieldName">username</param>
<!—注意name=”fieldName”-->
<message>username can't beblank!</message>
</validator>
<validator type="stringlength">
<paramname="fieldName">username</param>
<paramname="minLength">4</param>
<paramname="maxLength">6</param>
<message>Length of username shouldbetween ${minLenth} and ${maxLength}</message>
</validator>