關於struts2驗證框架

struts2驗證框架分爲字段(field校驗--面向字段、字段優先)校驗器和非字段(validator--校驗面向validator、validator優先)校驗器.

通過驗證框架驗證,只需要刪除掉原來validate()方法中的內容(這篇blog是基於"struts2輸入驗證--validate()驗證"的),再增加一個xml文件即可:一個Action對應一個驗證xml(RegisterAction.class-->RegisterAction-validation.xml並在同一個包中,注意文件名的對應關係)

1.基於field的驗證框架

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.dtd">
  3. <validators>
  4.     <field name="username">
  5.         <field-validator type="requiredstring">
  6.             <message>username shouldn't be null!!!</message>
  7.         </field-validator>
  8.        
  9.         <field-validator type="stringlength">
  10.             <param name="minLength">6</param>
  11.             <param name="maxLength">10</param>
  12.             <message>username should be between ${minLength} and ${maxLength}</message>
  13.         </field-validator>
  14.     </field>
  15.    
  16.     <field name="password">
  17.         <field-validator type="requiredstring">
  18.             <message>password shouldn't be null!!!</message>
  19.         </field-validator>
  20.        
  21.         <field-validator type="stringlength">
  22.             <param name="minLength">6</param>
  23.             <param name="maxLength">10</param>
  24.             <message>password should be between ${minLength} and ${maxLength}</message>
  25.         </field-validator>
  26.     </field>
  27.    
  28.     <field name="repassword">
  29.         <field-validator type="requiredstring">
  30.             <message>repassword shouldn't be null!!!</message>
  31.         </field-validator>
  32.        
  33.         <field-validator type="stringlength">
  34.             <param name="minLength">6</param>
  35.             <param name="maxLength">10</param>
  36.             <message>repassword should be between ${minLength} and ${maxLength}</message>
  37.         </field-validator>
  38.     </field>
  39.    
  40.     <field name="age">
  41.         <field-validator type="int">
  42.             <param name="min">1</param>
  43.             <param name="max">150</param>
  44.             <message>age should be between ${min} and ${max}</message>
  45.         </field-validator>
  46.     </field>
  47.    
  48.     <field name="birthday">
  49.         <field-validator type="required">
  50.             <message>birthday shouldn't be null!!!</message>
  51.         </field-validator>
  52.        
  53.         <field-validator type="date">
  54.             <param name="min">2001-01-01</param>
  55.             <param name="max">2003-08-08</param>
  56.             <message>birthday should be between ${min} and ${max}</message>
  57.         </field-validator>
  58.     </field>
  59.    
  60.     <field name="graduation">
  61.         <field-validator type="required">
  62.             <message>graduation shouldn't be null!!!</message>
  63.         </field-validator>
  64.        
  65.         <field-validator type="date">
  66.             <param name="min">2003-08-08</param>
  67.             <param name="max">2008-08-08</param>
  68.             <message>graduation should be between ${min} and ${max}</message>
  69.         </field-validator>
  70.     </field>
  71. </validators>

2.基於validator的驗證框架

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.dtd">
  3. <validators>
  4.     <validator type="requiredstring">
  5.         <param name="fieldName">username</param>
  6.         <param name="fieldName">password</param>
  7.         <param name="fieldName">repassword</param>
  8.         <message>username|password|repassword shouldn't be null!!!</message>
  9.     </validator>
  10.    
  11.     <validator type="stringlength">
  12.         <param name="fieldName">username</param>
  13.         <param name="fieldName">password</param>
  14.         <param name="fieldName">repassword</param>
  15.         <param name="minLength">6</param>
  16.         <param name="maxLength">10</param>
  17.         <message>username|password|repassword should be between ${minLength} and ${maxLength}</message>
  18.     </validator>
  19.    
  20.     <validator type="int">
  21.         <param name="min">1</param>
  22.         <param name="max">150</param>
  23.         <message>age should be between ${min} and ${max}</message>
  24.     </validator>
  25.    
  26.     <validator type="required">
  27.         <param name="fieldName">birthday</param>
  28.         <param name="fieldName">graduation</param>
  29.         <message>birthday|graduation shouldn't be null!!!</message>
  30.     </validator>
  31.    
  32.     <validator type="date">
  33.         <param name="fieldName">birthday</param>
  34.         <param name="fieldName">graduation</param>
  35.         <param name="min">2003-08-08</param>
  36.         <param name="max">2008-08-08</param>
  37.         <message>birthday|graduation should be between ${min} and ${max}</message>
  38.     </validator>
  39. </validators>

其他文件的內容不變(即和上一篇blog:validate()方法驗證時的一致)

struts2與struts1不同,struts1在配置驗證框架時需要配置struts-config.xml,但struts2在配置驗證框架時不再需要配置struts.xml

發佈了23 篇原創文章 · 獲贊 6 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章