欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Struts2講義35

系統(tǒng) 1676 0

8.2 ? 利用配置文件進(jìn)行輸入校驗(yàn)方法說明

8.1 小節(jié)中說明的輸入校驗(yàn)方法會(huì)讓程序產(chǎn)生很多代碼。如果是 1 個(gè)項(xiàng)目生命周期很短的項(xiàng)目,必然對(duì)時(shí)間的要求會(huì)很高。這時(shí)候利用 Struts2 來對(duì)該項(xiàng)目進(jìn)行開發(fā),開發(fā)者勢(shì)必不喜歡 8.1 小節(jié)中介紹的輸入校驗(yàn)方法。因?yàn)榇a太多,工作量一下子就增大了不少。而且它是一種硬編碼的形式,增大了系統(tǒng)各個(gè)模塊之間的耦合度,也不利于項(xiàng)目后期的維護(hù)和實(shí)施。因此本節(jié)介紹的利用配置文件進(jìn)行輸入校驗(yàn)的方式則很好的解決了上述問題。

利用配置文件進(jìn)行校驗(yàn)主要是增加了一些 xml 文件來對(duì)具體表單中各個(gè)字段進(jìn)行輸入校驗(yàn)。當(dāng)然配置文件能做的事情不止這些。其本身的輸入校驗(yàn)規(guī)則的書寫格式也有字段和非字段兩種,下面筆者就來具體介紹這些知識(shí)點(diǎn)。

8.2.1 ? Struts2 字段校驗(yàn)的配置文件形式

技術(shù)要點(diǎn)

Struts2 輸入校驗(yàn)配置文件字段校驗(yàn)格式介紹。

輸入校驗(yàn)配置文件命名方式和相關(guān)注意點(diǎn)。

字段校驗(yàn)格式和相關(guān)注意點(diǎn)。

演示代碼

數(shù)據(jù)輸入 JSP 代碼:

Java代碼 復(fù)制代碼
  1. <!---------------------文件名:register.jsp----------------> ??
  2. ………… ??
  3. ??????????????????<!--?用戶信息注冊(cè)form表單?--> ??
  4. ?????????<s:form?action= "Register.action" ??validate= "true" > ??
  5. ???????????????????<table?width= "60%" ?height= "76" ?border= "0" > ??
  6. ?????????????????????????????????????<!--?各標(biāo)簽定義?--> ??
  7. ?????????????????????????????????????<s:textfield?name= "username" ?label= "用戶名" /> ??
  8. ?????????????????????????????????????<s:password?name= "password" ?label= "密??碼" ?/> ??
  9. ?????????????????????????????????????<s:password?name= "repassword" ?label= "密??碼確認(rèn)" ?/> ??
  10. ?????????????????????????????????????<s:textfield?name= "birthday" ?label= "生日" /> ??
  11. ?????????????????????????????????????<s:textfield?name= "mobile" ?label= "手機(jī)號(hào)碼" /> ??
  12. ?????????????????????????????????????<s:textfield?name= "age" ?label= "年齡" /> ??
  13. ?????????????????????????????????????<s:submit?value= "注冊(cè)" ?align= "center" />?????????????????????????????? ??
  14. ???????????????????</table> ??
  15. ?????????</s:form> ??
  16. …………??
    <!---------------------文件名:register.jsp---------------->
…………
                  <!-- 用戶信息注冊(cè)form表單 -->
         <s:form action="Register.action"  validate="true">
                   <table width="60%" height="76" border="0">
                                     <!-- 各標(biāo)簽定義 -->
                                     <s:textfield name="username" label="用戶名"/>
                                     <s:password name="password" label="密  碼" />
                                     <s:password name="repassword" label="密  碼確認(rèn)" />
                                     <s:textfield name="birthday" label="生日"/>
                                     <s:textfield name="mobile" label="手機(jī)號(hào)碼"/>
                                     <s:textfield name="age" label="年齡"/>
                                     <s:submit value="注冊(cè)" align="center"/>                              
                   </table>
         </s:form>
…………
  

?

輸入校驗(yàn)文件代碼:

Java代碼 復(fù)制代碼
  1. <!---------文件名:RegisterAction-validation.xml----------> ??
  2. <?xml?version= "1.0" ?encoding= "gb2312" ?> ??
  3. <!DOCTYPE?validators?PUBLIC ??
  4. "-//OpenSymphony?Group//XWork?Validator?1.0.2//EN" ??
  5. "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd" > ??
  6. <validators> ??
  7. ?????????<field?name= "username" > ??
  8. ???????????????????<!—檢驗(yàn)用戶名的長度?--?> ??
  9. ???????????????????<field-validator?type= "stringlength" > ??
  10. ????????????????????????????<param?name= "minLength" > 6 </param> ??
  11. ????????????????????????????<param?name= "maxLength" > 8 </param> ??
  12. ????????????????????????????<message>用戶名長度必須在${minLength}-${maxLength}位之間</message> ??
  13. ???????????????????</field-validator> ??
  14. ???????????????????<!—檢驗(yàn)用戶名是否已輸入?--?> ??
  15. <field-validator?type= "requiredstring" > ??
  16. ????????????????????????????<message>請(qǐng)輸入用戶名</message> ??
  17. ???????????????????</field-validator> ??
  18. ?????????</field> ??
  19. ?????????<field?name= "password" > ??
  20. ???????????????????<!—檢驗(yàn)密碼的長度?--?> ??
  21. ???????????????????<field-validator?type= "stringlength" > ??
  22. ????????????????????????????<param?name= "minLength" > 6 </param> ??
  23. ????????????????????????????<param?name= "maxLength" > 8 </param> ??
  24. ????????????????????????????<message>密碼長度必須在${minLength}-${maxLength}位之間</message> ??
  25. ???????????????????</field-validator> ??
  26. <!—檢驗(yàn)密碼是否已輸入?--?> ??
  27. ???????????????????<field-validator?type= "requiredstring" > ??
  28. ????????????????????????????<message>請(qǐng)輸入密碼</message> ??
  29. ???????????????????</field-validator> ??
  30. ?????????</field> ??
  31. ?????????<field?name= "repassword" > ??
  32. ?????????<!—檢驗(yàn)確認(rèn)密碼的長度?--?> ??
  33. ???????????????????<field-validator?type= "stringlength" > ??
  34. ????????????????????????????<param?name= "minLength" > 6 </param> ??
  35. ????????????????????????????<param?name= "maxLength" > 8 </param> ??
  36. ????????????????????????????<message>確認(rèn)密碼長度必須在${minLength}-${maxLength}位之間</message> ??
  37. ???????????????????</field-validator> ??
  38. <!—檢驗(yàn)確認(rèn)密碼是否已輸入?--?> ??
  39. ???????????????????<field-validator?type= "requiredstring" > ??
  40. ????????????????????????????<message>請(qǐng)輸入確認(rèn)密碼</message> ??
  41. ???????????????????</field-validator> ??
  42. ?????????<!—檢驗(yàn)密碼和確認(rèn)密碼的輸入內(nèi)容是否一致?--?> ??
  43. ???????????????????<field-validator?type= "fieldexpression" > ??
  44. ????????????????????????????<param?name= "expression" >password==repassword</param> ??
  45. ????????????????????????????<message>確認(rèn)密碼和密碼輸入不一致</message> ??
  46. ???????????????????</field-validator> ??
  47. ?????????</field> ??
  48. ?????????<field?name= "birthday" > ??
  49. ?????????<!—檢驗(yàn)生日是否已輸入?--?> ??
  50. ???????????????????<field-validator?type= "required" > ??
  51. ????????????????????????????<message>請(qǐng)輸入生日日期</message> ??
  52. ???????????????????</field-validator> ??
  53. <!—檢驗(yàn)輸入日期是否在一個(gè)有效日期范圍內(nèi)?--?> ??
  54. ???????????????????<field-validator?type= "date" > ??
  55. ????????????????????????????<param?name= "min" > 1928 - 01 - 01 </param> ??
  56. ????????????????????????????<param?name= "max" > 2004 - 01 - 01 </param> ??
  57. ????????????????????????????<message>輸入生日日期無效</message> ??
  58. ???????????????????</field-validator> ??
  59. ?????????</field> ??
  60. ?????????<field?name= "mobile" > ??
  61. ???????????????????<!—檢驗(yàn)手機(jī)號(hào)碼是否已輸入?--?> ??
  62. <field-validator?type= "requiredstring" > ??
  63. ????????????????????????????<message>請(qǐng)輸入手機(jī)號(hào)碼</message> ??
  64. ???????????????????</field-validator> ??
  65. ?????????<!—檢驗(yàn)輸入手機(jī)號(hào)碼長度是否是 11 位有效手機(jī)號(hào)碼--?> ??
  66. ???????????????????<field-validator?type= "stringlength" > ??
  67. ????????????????????????????<param?name= "minLength" > 11 </param> ??
  68. ????????????????????????????<message>請(qǐng)輸入正確的手機(jī)號(hào)碼,號(hào)碼位數(shù)必須為 11 位</message> ??
  69. ???????????????????</field-validator> ??
  70. ?????????</field> ??
  71. ?????????<field?name= "age" > ??
  72. ??????????????<!—檢驗(yàn)?zāi)挲g是否已輸入?--?> ??
  73. ??????????????????<field-validator?type= "required" > ??
  74. ????????????<message>請(qǐng)輸入年齡</message> ??
  75. ???????????</field-validator> ??
  76. <!—檢驗(yàn)輸入年齡是否符合特定年齡范圍?--?> ??
  77. ??????????????????<field-validator?type= "int" > ??
  78. ????????????????????????????<param?name= "min" > 1 </param> ??
  79. ????????????????????????????<param?name= "max" > 80 </param> ??
  80. ????????????????????????????<message>年齡必須在${min}-${max}歲之間</message> ??
  81. ???????????????????</field-validator> ??
  82. ?????????</field> ??
  83. </validators>??
    <!---------文件名:RegisterAction-validation.xml---------->
<?xml version="1.0" encoding="gb2312"?>
<!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="username">
                   <!—檢驗(yàn)用戶名的長度 -- >
                   <field-validator type="stringlength">
                            <param name="minLength">6</param>
                            <param name="maxLength">8</param>
                            <message>用戶名長度必須在${minLength}-${maxLength}位之間</message>
                   </field-validator>
                   <!—檢驗(yàn)用戶名是否已輸入 -- >
<field-validator type="requiredstring">
                            <message>請(qǐng)輸入用戶名</message>
                   </field-validator>
         </field>
         <field name="password">
                   <!—檢驗(yàn)密碼的長度 -- >
                   <field-validator type="stringlength">
                            <param name="minLength">6</param>
                            <param name="maxLength">8</param>
                            <message>密碼長度必須在${minLength}-${maxLength}位之間</message>
                   </field-validator>
<!—檢驗(yàn)密碼是否已輸入 -- >
                   <field-validator type="requiredstring">
                            <message>請(qǐng)輸入密碼</message>
                   </field-validator>
         </field>
         <field name="repassword">
         <!—檢驗(yàn)確認(rèn)密碼的長度 -- >
                   <field-validator type="stringlength">
                            <param name="minLength">6</param>
                            <param name="maxLength">8</param>
                            <message>確認(rèn)密碼長度必須在${minLength}-${maxLength}位之間</message>
                   </field-validator>
<!—檢驗(yàn)確認(rèn)密碼是否已輸入 -- >
                   <field-validator type="requiredstring">
                            <message>請(qǐng)輸入確認(rèn)密碼</message>
                   </field-validator>
         <!—檢驗(yàn)密碼和確認(rèn)密碼的輸入內(nèi)容是否一致 -- >
                   <field-validator type="fieldexpression">
                            <param name="expression">password==repassword</param>
                            <message>確認(rèn)密碼和密碼輸入不一致</message>
                   </field-validator>
         </field>
         <field name="birthday">
         <!—檢驗(yàn)生日是否已輸入 -- >
                   <field-validator type="required">
                            <message>請(qǐng)輸入生日日期</message>
                   </field-validator>
<!—檢驗(yàn)輸入日期是否在一個(gè)有效日期范圍內(nèi) -- >
                   <field-validator type="date">
                            <param name="min">1928-01-01</param>
                            <param name="max">2004-01-01</param>
                            <message>輸入生日日期無效</message>
                   </field-validator>
         </field>
         <field name="mobile">
                   <!—檢驗(yàn)手機(jī)號(hào)碼是否已輸入 -- >
<field-validator type="requiredstring">
                            <message>請(qǐng)輸入手機(jī)號(hào)碼</message>
                   </field-validator>
         <!—檢驗(yàn)輸入手機(jī)號(hào)碼長度是否是11位有效手機(jī)號(hào)碼-- >
                   <field-validator type="stringlength">
                            <param name="minLength">11</param>
                            <message>請(qǐng)輸入正確的手機(jī)號(hào)碼,號(hào)碼位數(shù)必須為11位</message>
                   </field-validator>
         </field>
         <field name="age">
              <!—檢驗(yàn)?zāi)挲g是否已輸入 -- >
                  <field-validator type="required">
            <message>請(qǐng)輸入年齡</message>
           </field-validator>
<!—檢驗(yàn)輸入年齡是否符合特定年齡范圍 -- >
                  <field-validator type="int">
                            <param name="min">1</param>
                            <param name="max">80</param>
                            <message>年齡必須在${min}-${max}歲之間</message>
                   </field-validator>
         </field>
</validators>
  

?

代碼解釋

1 )使用配置文件來完成輸入校驗(yàn)這種方式,首先在 Action 代碼中去除所有 validate validateXXX 方法的代碼。然后在和 Action 類文件同一級(jí)目錄下增加 XXX-validation.xml 配置文件。這里“ XXX ”是 Action 類文件名字,表示該 XML 文件中所有輸入校驗(yàn)的規(guī)則定義和錯(cuò)誤信息顯示方式都只針對(duì)該 Action 有效。

2 )該輸入校驗(yàn)的配置文件有 2 種書寫格式, 1 種是本節(jié)筆者要說的字段校驗(yàn)格式。另 1 種是下 1 小節(jié)要介紹的非字段格式。首先來說明字段校驗(yàn)格式。如代碼所示。在 <validators> </validators> 之間使用 <field> 來對(duì)輸入界面表單中每 1 個(gè)字段進(jìn)行輸入校驗(yàn)規(guī)則定義和錯(cuò)誤信息定義。

<field> 中的 name 屬性就是表單中字段名字。它里面包含 <field-validator> 標(biāo)簽,它的 type 屬性表明是何種類型的輸入校驗(yàn)。這些輸入校驗(yàn)的 type 都是在 Struts2 中缺省定義的。被稱之為校驗(yàn)器。具體這些校驗(yàn)器是如何形成的以及如何生效,在之后章節(jié)還有有介紹。這里讀者只是知道一下就可以。

<field-validator> 標(biāo)簽內(nèi)可以有 2 種標(biāo)簽。 1 種是 <param> 標(biāo)簽,該標(biāo)簽定義了一些輸入校驗(yàn)規(guī)則需要用到的參數(shù)。這些參數(shù)更可以以“ ${ 參數(shù)名 } ”格式顯示在視圖頁面上。除此之外還有 <message> 標(biāo)簽,該標(biāo)簽定義的是輸入校驗(yàn)出錯(cuò)后的出錯(cuò)信息。這些信息是可以顯示在試圖界面上的。

3 )值得說的是代碼中黑體表明的參數(shù)名字。因?yàn)? Struts2 中特定的校驗(yàn)類型的參數(shù)名是已經(jīng)在 Struts2 代碼中缺省定義過的。因此如果開發(fā)者定義的參數(shù)名字和它本身缺省定義的不符合。那么輸入校驗(yàn)時(shí)候在配置文件中定義的該校驗(yàn)規(guī)則是不會(huì)生效的。比如代碼中的“ stringlength ”類型校驗(yàn),如果定義的最大長度不是“ maxLength ”而是其他的。則在輸入數(shù)據(jù)界面,如果輸入的數(shù)據(jù)超過最大長度,視圖界面不會(huì)給出特定的出錯(cuò)信息的。

4 )如果在輸入數(shù)據(jù)的視圖界面的表單中輸入上述 JSP 文件中的黑體“ validate="true" ”。則其實(shí)是另外 1 種輸入校驗(yàn)的方式。這種方式稱之為“客戶端輸入校驗(yàn)方式”。它會(huì)自動(dòng)在試圖頁面中生成很多 JavaScript 代碼。但是它是有其局限性的,因此這些代碼的適合程度不是對(duì) Struts2 中所有的主題都適合的(有關(guān)主題的基本概念翻閱“ Struts2 標(biāo)簽”章節(jié))。因此筆者本身不贊同這樣的輸入校驗(yàn)方式。這里只是向讀者介紹希望讀者對(duì) Struts2 的輸入校驗(yàn)有個(gè)完整的印象。

8.2.2 ? Struts2 非字段校驗(yàn)的配置文件形式

技術(shù)要點(diǎn)

Struts2 輸入校驗(yàn)配置文件非字段校驗(yàn)格式介紹。

非字段校驗(yàn)格式和相關(guān)注意點(diǎn)。

演示代碼

于上一小節(jié)代碼相比,只是輸入校驗(yàn)配置文件中內(nèi)容有所不同。代碼如下:

Java代碼 復(fù)制代碼
  1. <!--------文件名:RegisterAction-validation.xml-----------> ??
  2. <validators> ??
  3. ?????????<!—檢驗(yàn)輸入用戶名長度是否在一個(gè)有效范圍內(nèi)?--?> ??
  4. ?????????<validator?type= "stringlength" > ??
  5. ???????????????????<param?name= "fieldName" >username</param> ??
  6. ???????????????????<param?name= "minLength" > 6 </param> ??
  7. ???????????????????<param?name= "maxLength" > 8 </param> ??
  8. ???????????????????<message>用戶名長度必須在${minLength}-${maxLength}位之間</message> ??
  9. ?????????</validator> ??
  10. ?????????<!—檢驗(yàn)用戶名是否已輸入?--?> ??
  11. ?????????<validator?type= "requiredstring" > ??
  12. ???????????????????<param?name= "fieldName" >username</param> ??
  13. ???????????????????<message>請(qǐng)輸入用戶名</message> ??
  14. ?????????</validator> ??
  15. ?????????<!—檢驗(yàn)密碼的長度?--?> ??
  16. ?????????<validator?type= "stringlength" > ??
  17. ???????????????????<param?name= "fieldName" >password</param> ??
  18. ???????????????????<param?name= "minLength" > 6 </param> ??
  19. ???????????????????<param?name= "maxLength" > 8 </param> ??
  20. ???????????????????<message>密碼長度必須在${minLength}-${maxLength}位之間</message> ??
  21. ?????????</validator> ??
  22. ?????????<!—檢驗(yàn)密碼是否已輸入?--?> ??
  23. ?????????<validator?type= "requiredstring" > ??
  24. ???????????????????<param?name= "fieldName" >password</param> ??
  25. ???????????????????<message>請(qǐng)輸入密碼</message> ??
  26. ?????????</validator> ??
  27. ?????????<!—檢驗(yàn)確認(rèn)密碼的長度?--?> ??
  28. <validator?type= "stringlength" > ??
  29. ???????????????????<param?name= "fieldName" >repassword</param> ??
  30. ???????????????????<param?name= "minLength" > 6 </param> ??
  31. ???????????????????<param?name= "maxLength" > 8 </param> ??
  32. ???????????????????<message>確認(rèn)密碼長度必須在${minLength}-${maxLength}位之間</message> ??
  33. ?????????</validator> ??
  34. ?????????<!—檢驗(yàn)確認(rèn)密碼是否已輸入?--?> ??
  35. ?????????<validator?type= "requiredstring" > ??
  36. ???????????????????<param?name= "fieldName" >repassword</param> ??
  37. ???????????????????<message>請(qǐng)輸入確認(rèn)密碼</message> ??
  38. ?????????</validator> ??
  39. ?????????<!—檢驗(yàn)密碼和確認(rèn)密碼的輸入內(nèi)容是否一致?--?> ??
  40. ?????????<validator?type= "fieldexpression" > ??
  41. ???????????????????<param?name= "fieldName" >password</param> ??
  42. ???????????????????<param?name= "fieldName" >repassword</param> ??
  43. ???????????????????<param?name= "expression" >password==repassword</param> ??
  44. ???????????????????<message>確認(rèn)密碼和密碼輸入不一致</message> ??
  45. ?????????</validator> ??
  46. ?????????<!—檢驗(yàn)生日是否已輸入?--?> ??
  47. ?????????<validator?type= "required" > ??
  48. ???????????????????<param?name= "fieldName" >birthday</param> ??
  49. ???????????????????<message>請(qǐng)輸入生日日期</message> ??
  50. ?????????</validator> ??
  51. ?????????<!—檢驗(yàn)輸入日期是否在一個(gè)有效日期范圍內(nèi)?--?> ??
  52. ?????????<validator?type= "date" > ??
  53. ???????????????????<param?name= "fieldName" >birthday</param> ??
  54. ???????????????????<param?name= "min" > 1928 - 01 - 01 </param> ??
  55. ???????????????????<param?name= "max" > 2004 - 01 - 01 </param> ??
  56. ???????????????????<message>輸入生日日期無效</message> ??
  57. ?????????</validator> ??
  58. ?????????<!—檢驗(yàn)手機(jī)號(hào)碼是否已輸入?--?> ??
  59. ?????????<validator?type= "requiredstring" > ??
  60. ???????????????????<param?name= "fieldName" >mobile</param> ??
  61. ???????????????????<message>請(qǐng)輸入手機(jī)號(hào)碼</message> ??
  62. ?????????</validator> ??
  63. ?????????<!—檢驗(yàn)輸入手機(jī)號(hào)碼長度是否是 11 位有效手機(jī)號(hào)碼--?> ??
  64. ?????????<validator?type= "stringlength" > ??
  65. ???????????????????<param?name= "fieldName" >mobile</param> ??
  66. ???????????????????<message>請(qǐng)輸入正確的手機(jī)號(hào)碼,號(hào)碼位數(shù)必須為 11 位</message> ??
  67. ?????????</validator> ??
  68. ?????????<!—檢驗(yàn)?zāi)挲g是否已輸入?--?> ??
  69. ?????????<validator?type= "required" > ??
  70. ???????????????????<param?name= "fieldName" >age</param> ??
  71. ???????????????????<message>請(qǐng)輸入年齡</message> ??
  72. ?????????</validator> ??
  73. ?????????<!—檢驗(yàn)輸入年齡是否符合特定年齡范圍?--?> ??
  74. ?????????<validator?type= "int" > ??
  75. ???????????????????<param?name= "fieldName" >age</param> ??
  76. ???????????????????<param?name= "min" > 1 </param> ??
  77. ???????????????????<param?name= "max" > 80 </param> ??
  78. ???????????????????<message>年齡必須在${min}-${max}歲之間</message> ??
  79. ?????????</validator> ??
  80. </validators>??
    <!--------文件名:RegisterAction-validation.xml----------->
<validators>
         <!—檢驗(yàn)輸入用戶名長度是否在一個(gè)有效范圍內(nèi) -- >
         <validator type="stringlength">
                   <param name="fieldName">username</param>
                   <param name="minLength">6</param>
                   <param name="maxLength">8</param>
                   <message>用戶名長度必須在${minLength}-${maxLength}位之間</message>
         </validator>
         <!—檢驗(yàn)用戶名是否已輸入 -- >
         <validator type="requiredstring">
                   <param name="fieldName">username</param>
                   <message>請(qǐng)輸入用戶名</message>
         </validator>
         <!—檢驗(yàn)密碼的長度 -- >
         <validator type="stringlength">
                   <param name="fieldName">password</param>
                   <param name="minLength">6</param>
                   <param name="maxLength">8</param>
                   <message>密碼長度必須在${minLength}-${maxLength}位之間</message>
         </validator>
         <!—檢驗(yàn)密碼是否已輸入 -- >
         <validator type="requiredstring">
                   <param name="fieldName">password</param>
                   <message>請(qǐng)輸入密碼</message>
         </validator>
         <!—檢驗(yàn)確認(rèn)密碼的長度 -- >
<validator type="stringlength">
                   <param name="fieldName">repassword</param>
                   <param name="minLength">6</param>
                   <param name="maxLength">8</param>
                   <message>確認(rèn)密碼長度必須在${minLength}-${maxLength}位之間</message>
         </validator>
         <!—檢驗(yàn)確認(rèn)密碼是否已輸入 -- >
         <validator type="requiredstring">
                   <param name="fieldName">repassword</param>
                   <message>請(qǐng)輸入確認(rèn)密碼</message>
         </validator>
         <!—檢驗(yàn)密碼和確認(rèn)密碼的輸入內(nèi)容是否一致 -- >
         <validator type="fieldexpression">
                   <param name="fieldName">password</param>
                   <param name="fieldName">repassword</param>
                   <param name="expression">password==repassword</param>
                   <message>確認(rèn)密碼和密碼輸入不一致</message>
         </validator>
         <!—檢驗(yàn)生日是否已輸入 -- >
         <validator type="required">
                   <param name="fieldName">birthday</param>
                   <message>請(qǐng)輸入生日日期</message>
         </validator>
         <!—檢驗(yàn)輸入日期是否在一個(gè)有效日期范圍內(nèi) -- >
         <validator type="date">
                   <param name="fieldName">birthday</param>
                   <param name="min">1928-01-01</param>
                   <param name="max">2004-01-01</param>
                   <message>輸入生日日期無效</message>
         </validator>
         <!—檢驗(yàn)手機(jī)號(hào)碼是否已輸入 -- >
         <validator type="requiredstring">
                   <param name="fieldName">mobile</param>
                   <message>請(qǐng)輸入手機(jī)號(hào)碼</message>
         </validator>
         <!—檢驗(yàn)輸入手機(jī)號(hào)碼長度是否是11位有效手機(jī)號(hào)碼-- >
         <validator type="stringlength">
                   <param name="fieldName">mobile</param>
                   <message>請(qǐng)輸入正確的手機(jī)號(hào)碼,號(hào)碼位數(shù)必須為11位</message>
         </validator>
         <!—檢驗(yàn)?zāi)挲g是否已輸入 -- >
         <validator type="required">
                   <param name="fieldName">age</param>
                   <message>請(qǐng)輸入年齡</message>
         </validator>
         <!—檢驗(yàn)輸入年齡是否符合特定年齡范圍 -- >
         <validator type="int">
                   <param name="fieldName">age</param>
                   <param name="min">1</param>
                   <param name="max">80</param>
                   <message>年齡必須在${min}-${max}歲之間</message>
         </validator>
</validators>
  

?

代碼解釋

1 非字段格式的輸入校驗(yàn)方式與上 1 小節(jié)相比主要是它的書寫格式不是像之前在 <validators> </validators> 之間包含 <field> 標(biāo)簽,而是 <validator> 標(biāo)簽。每個(gè) <validator> 標(biāo)簽定義的 type 屬性還是 Struts2 自帶的輸入校驗(yàn)器的類型格式。

2 )在 <validator> 標(biāo)簽之內(nèi)包含的還是 <param> <message> 兩種標(biāo)簽。但是在 <param> 中多定義了一個(gè) fieldName 屬性。這個(gè)屬性定義的就是輸入校驗(yàn)的表單字段名字。其他和之前字段格式都類似。

3 )由于所有數(shù)據(jù)輸入的校驗(yàn)出錯(cuò)的錯(cuò)誤信息和 8.1 節(jié)相同,因此所有的校驗(yàn)出錯(cuò)的信息顯示讀者可以參看圖 8.1 到圖 8.4 這幾張圖示。

8.2.3 ? Struts2 輸入校驗(yàn)出錯(cuò)信息的國際化配置形式

技術(shù)要點(diǎn)

Struts2 輸入校驗(yàn)配置文件中定義了 <message> 標(biāo)簽。該標(biāo)簽定義了很多輸入校驗(yàn)出錯(cuò)信息。之前還是使用硬編碼寫死在配置文件中。其實(shí)可以使用 Struts2 的國際化配置將這些錯(cuò)誤信息寫在屬性文件中。本小節(jié)就介紹一下如何將錯(cuò)誤信息定義在屬性文件中也為之后 Struts2 國際化章節(jié)做個(gè)基礎(chǔ)介紹。

配置文件中修改代碼介紹,介紹出錯(cuò)信息的 key 屬性定義。

使用中文的屬性文件出錯(cuò)信息定義代碼

演示代碼

配置文件代碼如下:

Java代碼 復(fù)制代碼
  1. <!------------文件名:RegisterAction-validation.xml-------------> ??
  2. <validators> ??
  3. ?????????<validator?type= "stringlength" > ??
  4. ???????????????????<param?name= "fieldName" >username</param> ??
  5. ???????????????????<param?name= "minLength" > 6 </param> ??
  6. ???????????????????<param?name= "maxLength" > 8 </param> ??
  7. ???????????????????<message?key= "userNameLengthRange" ></message> ??
  8. ?????????</validator> ??
  9. ?????????<validator?type= "requiredstring" > ??
  10. ???????????????????<param?name= "fieldName" >username</param> ??
  11. ???????????????????<message?key= "userNameRequired" ></message> ??
  12. ?????????</validator> ??
  13. ?????????<validator?type= "stringlength" > ??
  14. ???????????????????<param?name= "fieldName" >password</param> ??
  15. ???????????????????<param?name= "minLength" > 6 </param> ??
  16. ???????????????????<param?name= "maxLength" > 8 </param> ??
  17. ???????????????????<message?key= "passwordLength" ></message> ??
  18. ?????????</validator> ??
  19. ?????????<validator?type= "requiredstring" > ??
  20. ???????????????????<param?name= "fieldName" >password</param> ??
  21. ???????????????????<message?key= "passwordRequired" ></message> ??
  22. ?????????</validator> ??
  23. ?????????<validator?type= "stringlength" > ??
  24. ???????????????????<param?name= "fieldName" >repassword</param> ??
  25. ???????????????????<param?name= "minLength" > 6 </param> ??
  26. ???????????????????<param?name= "maxLength" > 8 </param> ??
  27. ???????????????????<message?key= "repasswordLength" ></message> ??
  28. ?????????</validator> ??
  29. ?????????<validator?type= "requiredstring" > ??
  30. ???????????????????<param?name= "fieldName" >repassword</param> ??
  31. ???????????????????<message?key= "repasswordRequired" ></message> ??
  32. ?????????</validator> ??
  33. ?????????<validator?type= "fieldexpression" > ??
  34. ???????????????????<param?name= "fieldName" >password</param> ??
  35. ???????????????????<param?name= "fieldName" >repassword</param> ??
  36. ???????????????????<param?name= "expression" >password==repassword</param> ??
  37. ???????????????????<message?key= "repasswordEquals" ></message> ??
  38. ?????????</validator> ??
  39. ?????????<validator?type= "required" > ??
  40. ???????????????????<param?name= "fieldName" >birthday</param> ??
  41. ???????????????????<message?key= "birthdayRequired" ></message> ??
  42. ?????????</validator> ??
  43. ?????????<validator?type= "date" > ??
  44. ???????????????????<param?name= "fieldName" >birthday</param> ??
  45. ???????????????????<param?name= "min" > 1928 - 01 - 01 </param> ??
  46. ???????????????????<param?name= "max" > 2004 - 01 - 01 </param> ??
  47. ???????????????????<message?key= "birthdayRange" ></message> ??
  48. ?????????</validator> ??
  49. ?????????<validator?type= "requiredstring" > ??
  50. ???????????????????<param?name= "fieldName" >mobile</param> ??
  51. ???????????????????<message?key= "mobileRequired" ></message> ??
  52. ?????????</validator> ??
  53. ?????????<validator?type= "stringlength" > ??
  54. ???????????????????<param?name= "fieldName" >mobile</param> ??
  55. ???????????????????<message?key= "mobileLength" ></message> ??
  56. ?????????</validator> ??
  57. ?????????<validator?type= "required" > ??
  58. ???????????????????<param?name= "fieldName" >age</param> ??
  59. ???????????????????<message?key= "ageRequired" ></message> ??
  60. ?????????</validator> ??
  61. ?????????<validator?type= "int" > ??
  62. ???????????????????<param?name= "fieldName" >age</param> ??
  63. ???????????????????<param?name= "min" > 1 </param> ??
  64. ???????????????????<param?name= "max" > 80 </param> ??
  65. ???????????????????<message?key= "ageRange" ></message> ??
  66. ?????????</validator> ??
  67. </validators>??
    <!------------文件名:RegisterAction-validation.xml------------->
<validators>
         <validator type="stringlength">
                   <param name="fieldName">username</param>
                   <param name="minLength">6</param>
                   <param name="maxLength">8</param>
                   <message key="userNameLengthRange"></message>
         </validator>
         <validator type="requiredstring">
                   <param name="fieldName">username</param>
                   <message key="userNameRequired"></message>
         </validator>
         <validator type="stringlength">
                   <param name="fieldName">password</param>
                   <param name="minLength">6</param>
                   <param name="maxLength">8</param>
                   <message key="passwordLength"></message>
         </validator>
         <validator type="requiredstring">
                   <param name="fieldName">password</param>
                   <message key="passwordRequired"></message>
         </validator>
         <validator type="stringlength">
                   <param name="fieldName">repassword</param>
                   <param name="minLength">6</param>
                   <param name="maxLength">8</param>
                   <message key="repasswordLength"></message>
         </validator>
         <validator type="requiredstring">
                   <param name="fieldName">repassword</param>
                   <message key="repasswordRequired"></message>
         </validator>
         <validator type="fieldexpression">
                   <param name="fieldName">password</param>
                   <param name="fieldName">repassword</param>
                   <param name="expression">password==repassword</param>
                   <message key="repasswordEquals"></message>
         </validator>
         <validator type="required">
                   <param name="fieldName">birthday</param>
                   <message key="birthdayRequired"></message>
         </validator>
         <validator type="date">
                   <param name="fieldName">birthday</param>
                   <param name="min">1928-01-01</param>
                   <param name="max">2004-01-01</param>
                   <message key="birthdayRange"></message>
         </validator>
         <validator type="requiredstring">
                   <param name="fieldName">mobile</param>
                   <message key="mobileRequired"></message>
         </validator>
         <validator type="stringlength">
                   <param name="fieldName">mobile</param>
                   <message key="mobileLength"></message>
         </validator>
         <validator type="required">
                   <param name="fieldName">age</param>
                   <message key="ageRequired"></message>
         </validator>
         <validator type="int">
                   <param name="fieldName">age</param>
                   <param name="min">1</param>
                   <param name="max">80</param>
                   <message key="ageRange"></message>
         </validator>
</validators>
  

?

支持中文的國際化配置屬性文件代碼如下:

Java代碼 復(fù)制代碼
  1. <!---------------文件名:messageResource.properties--------------> ??
  2. #配置文件中<message>的key屬性定義 ??
  3. userNameLengthRange=用戶名長度必須在${minLength}-${maxLength}位之間 ??
  4. userNameRequired=請(qǐng)輸入用戶名 ??
  5. passwordLength=密碼長度必須在${minLength}-${maxLength}位之間 ??
  6. passwordRequired=請(qǐng)輸入密碼 ??
  7. repasswordLength=確認(rèn)密碼長度必須在${minLength}-${maxLength}位之間 ??
  8. repasswordRequired=請(qǐng)輸入確認(rèn)密碼 ??
  9. repasswordEquals=確認(rèn)密碼和密碼輸入不一致 ??
  10. birthdayRequired=請(qǐng)輸入生日日期 ??
  11. birthdayRange=輸入生日日期無效 ??
  12. mobileRequired=請(qǐng)輸入手機(jī)號(hào)碼 ??
  13. mobileLength=請(qǐng)輸入正確的手機(jī)號(hào)碼,號(hào)碼位數(shù)必須為 11 位 ??
  14. ageRequired=請(qǐng)輸入年齡 ??
  15. ageRange=年齡必須在${min}-${max}歲之間??
    <!---------------文件名:messageResource.properties-------------->
#配置文件中<message>的key屬性定義
userNameLengthRange=用戶名長度必須在${minLength}-${maxLength}位之間
userNameRequired=請(qǐng)輸入用戶名
passwordLength=密碼長度必須在${minLength}-${maxLength}位之間
passwordRequired=請(qǐng)輸入密碼
repasswordLength=確認(rèn)密碼長度必須在${minLength}-${maxLength}位之間
repasswordRequired=請(qǐng)輸入確認(rèn)密碼
repasswordEquals=確認(rèn)密碼和密碼輸入不一致
birthdayRequired=請(qǐng)輸入生日日期
birthdayRange=輸入生日日期無效
mobileRequired=請(qǐng)輸入手機(jī)號(hào)碼
mobileLength=請(qǐng)輸入正確的手機(jī)號(hào)碼,號(hào)碼位數(shù)必須為11位
ageRequired=請(qǐng)輸入年齡
ageRange=年齡必須在${min}-${max}歲之間
  

?

代碼解釋

1 在配置文件中筆者對(duì) <message> 標(biāo)簽做了修改。使用了 key 屬性,這些 key <

Struts2講義35


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 免费视频在线看 | 蜜臀在线播放 | 美女视频黄a视频免费全过程 | 久久精品99| 国产美女高清片免费观看 | 亚洲欧美综合日韩字幕v在线 | 亚洲一视频| 国产视频导航 | 欧美成人久久久 | 欧美日韩在线一区二区 | 精品欧美一区二区vr在线观看 | 欧美日韩在线影院 | 美美女高清毛片视频免费观看 | 国产精品久久久久久搜索 | 人人艹人人看 | 欧美一区二区三区大片 | 久久蜜桃av一区二区天堂 | 亚洲欧美日本在线观看 | 两性免费视频 | 五月天婷五月天综合网站 | 二区欧美 | 国产福利一区二区 | 鲁一鲁影院 | 国产 欧美 日韩 一区 | 免费一级欧美性大片 | 高清激情小视频在线观看 | 日日天天| 国产一三区A片在线播放 | 免费播放特黄特色毛片 | 国产成人无码区免费内射一片色欲 | 一区二区三区成人A片在线观看 | 亚洲一区二区三 | 日韩有码一区二区三区 | 日本高清色www | 欧美日韩一二区 | 国产精品第1页在线播放 | 五月婷婷综合激情网 | 一级观看免费完整版视频 | 成人精品一区 | 一级黄色绿像片 | 奇米影视第四色av首页 |