struts2验证框架分为字段(field校验--面向字段、字段优先)校验器和非字段(validator--校验面向validator、validator优先)校验器.
通过验证框架验证,只需要删除掉原来validate()方法中的内容(这篇blog是基于"struts2输入验证--validate()验证"的),再增加一个xml文件即可:一个Action对应一个验证xml(RegisterAction.class-->RegisterAction-validation.xml并在同一个包中,注意文件名的对应关系)
1.基于field的验证框架
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.dtd">
- <validators>
- <field name="username">
- <field-validator type="requiredstring">
- <message>username shouldn't be null!!!</message>
- </field-validator>
- <field-validator type="stringlength">
- <param name="minLength">6</param>
- <param name="maxLength">10</param>
- <message>username should be between ${minLength} and ${maxLength}</message>
- </field-validator>
- </field>
- <field name="password">
- <field-validator type="requiredstring">
- <message>password shouldn't be null!!!</message>
- </field-validator>
- <field-validator type="stringlength">
- <param name="minLength">6</param>
- <param name="maxLength">10</param>
- <message>password should be between ${minLength} and ${maxLength}</message>
- </field-validator>
- </field>
- <field name="repassword">
- <field-validator type="requiredstring">
- <message>repassword shouldn't be null!!!</message>
- </field-validator>
- <field-validator type="stringlength">
- <param name="minLength">6</param>
- <param name="maxLength">10</param>
- <message>repassword should be between ${minLength} and ${maxLength}</message>
- </field-validator>
- </field>
- <field name="age">
- <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>
- <field name="birthday">
- <field-validator type="required">
- <message>birthday shouldn't be null!!!</message>
- </field-validator>
- <field-validator type="date">
- <param name="min">2001-01-01</param>
- <param name="max">2003-08-08</param>
- <message>birthday should be between ${min} and ${max}</message>
- </field-validator>
- </field>
- <field name="graduation">
- <field-validator type="required">
- <message>graduation shouldn't be null!!!</message>
- </field-validator>
- <field-validator type="date">
- <param name="min">2003-08-08</param>
- <param name="max">2008-08-08</param>
- <message>graduation should be between ${min} and ${max}</message>
- </field-validator>
- </field>
- </validators>
2.基于validator的验证框架
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.dtd">
- <validators>
- <validator type="requiredstring">
- <param name="fieldName">username</param>
- <param name="fieldName">password</param>
- <param name="fieldName">repassword</param>
- <message>username|password|repassword shouldn't be null!!!</message>
- </validator>
- <validator type="stringlength">
- <param name="fieldName">username</param>
- <param name="fieldName">password</param>
- <param name="fieldName">repassword</param>
- <param name="minLength">6</param>
- <param name="maxLength">10</param>
- <message>username|password|repassword should be between ${minLength} and ${maxLength}</message>
- </validator>
- <validator type="int">
- <param name="min">1</param>
- <param name="max">150</param>
- <message>age should be between ${min} and ${max}</message>
- </validator>
- <validator type="required">
- <param name="fieldName">birthday</param>
- <param name="fieldName">graduation</param>
- <message>birthday|graduation shouldn't be null!!!</message>
- </validator>
- <validator type="date">
- <param name="fieldName">birthday</param>
- <param name="fieldName">graduation</param>
- <param name="min">2003-08-08</param>
- <param name="max">2008-08-08</param>
- <message>birthday|graduation should be between ${min} and ${max}</message>
- </validator>
- </validators>
其他文件的内容不变(即和上一篇blog:validate()方法验证时的一致)
struts2与struts1不同,struts1在配置验证框架时需要配置struts-config.xml,但struts2在配置验证框架时不再需要配置struts.xml