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