struts2表单校验有两种方式:手动编码验证 和框架配置验证 。
对于struts2框架配置验证原理可以阅读xwork-2.12.jar 开源类库下的com.opensymphony.xwork2.validator.validators 包。需要配置一个对应的验证xml文件,文件名格式是固定的,格式为:acton类名-validation.xml ,把该配置文件放在与当前接收表单的action类的根目录下,然后在该xml文件里配置需要验证的字段名和验证规则,无需一行代码即可达到各种验证功能。
对于手动编码验证,
对于既有手动编码的验证又有struts框架配置验证的执行顺序如下:
①首先执行数据类型转换
②执行对应的校验框架
③执行特定方法的validateXXX()方法里的验证,例如在struts.xml中配置action的method方法为test,则执行validateTest()方法里的验证,method的值默认是execute,执行的是validate()方法的验证,即第4条的内容
④执行validate()方法的验证
框架配置验证的xml文件示例:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd"> <validators> <field name="name"> <field-validator type="requiredstring"> <message>姓名不能为空</message> </field-validator> </field> <field name="age"> <field-validator type="required"> <message>年龄不能为空</message> </field-validator> <field-validator type="int"> <param name="min">1</param> <param name="max">120</param> <message>年龄的范围不合法,应为[${min},${max}]</message> </field-validator> </field> </validators>