第一种方法:普通配置文件校验
在Action所在包下建立Action-validation.xml或Action-method-validation.xml,前者是对Action中所有的方法进行校验,而后者是对某一个method进行校验,具体格式如下(对用户姓、名、年龄校验)
<?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="user.firstname"> <field-validator type="requiredstring"> <message>required first name</message> </field-validator> </field> <field name="user.lastname"> <field-validator type="requiredstring"> <message>required last name</message> </field-validator> </field> <field name="user.age"> <field-validator type="required"> <message>required age</message> </field-validator> <field-validator type="int"> <param name="min">1</param> <param name="max">150</param> <message>age should be between ${min} and ${max}</message> </field-validator> </field> </validators>
第二种方法:使用visitor进行校验
第一:先在Action包下建立Action-validation.xml或Action-method-validation.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="user"> <field-validator type="visitor"> <param name="context">user</param><!-- 具体的校验文件 --> <param name="appendPrefix">true</param><!-- 是否添加前缀 --> <message>user's </message><!-- 前缀 --> </field-validator> </field> </validators>
第二:在Bean所在的包下建立BeanName-contextValue-validation.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="firstname"> <field-validator type="requiredstring"> <message>firstname required</message> </field-validator> </field> <field name="lastname"> <field-validator type="requiredstring"> <message>lastname required</message> </field-validator> </field> <field name="age"> <field-validator type="required"> <message>age required</message> </field-validator> </field> <field name="age"> <field-validator type="int"> <param name="max">150</param> <param name="min">1</param> <message>age should be between ${min} and ${max}</message> </field-validator> </field> </validators>
第三:重写validater方法进行校验(略)