Struts2學習筆記(十四):基於XML配置方式實現對action的所有方法進行校正

來源:互聯網
上載者:User

使用基於XML配置方式實現輸入校正時,Action也需要繼承ActionSupport,並且提供校正檔案,校正檔案和action類放在同一個包下,檔案的取名格式為:ActionClassName-validation.xml,其中ActionClassName為action的簡單類名,-validation為固定寫法。如果Action類為com.jim.UserAction,那麼該檔案的取名應為:UserAction-validation.xml。下面是校正檔案的模版:

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.3//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.3.dtd">
<validators>
<field name="username">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>使用者名稱不可為空!</message>
</field-validator>
</field>
</validators>
 <field>指定action中要校正的屬性,<field-validator>指定校正器,上面指定的校正器requiredstring是由系統提供的,系統提供了能滿足大部分驗證需求的校正器,這些校正器的定義可以在xwork-2.x.jar中的com.opensymphony.xwork2.validator.validators下的default.xml中找到。<message>為校正失敗後的提示資訊,如果需要國際化,可以為message指定key屬性,key的值為資源檔中的key。在這個校正檔案中,對action中字串類型的username屬性進行驗證,首先要求調用trim()方法去掉空格,然後判斷使用者名稱是否為空白。 struts2提供的校正器列表系統提供的校正器如下:
  • required (必填校正器,要求field的值不能為null)

  • requiredstring (必填字串校正器,要求field的值不能為null,並且長度大於0,預設情況下會對字串去前後空格)

  • stringlength(字串長度校正器,要求field的值必須在指定的範圍內,否則校正失敗,minLength參數指定最小長度,maxLength參數指定最大長度,trim參數指定校正field之前是否去除字串前後的空格)

  • regex(Regex校正器,檢查被校正的field是否匹配一個Regex.expression參數指定Regex,caseSensitive參數指定進行Regex匹配時,是否區分大小寫,預設值為true)

  • int(整數校正器,要求field的整數值必須在指定範圍內,min指定最小值,max指定最大值)

  • double(雙精確度浮點數校正器,要求field的雙精確度浮點數必須在指定範圍內,min指定最小值,max指定最大值)

  • fieldexpression(欄位OGNL運算式校正器,要求field滿足一個ognl運算式,expression參數指定ognl運算式,該邏輯運算式基於ValueStack進行求值,返回true時校正通過,否則不通過)

  • email(郵件地址校正器,要求如果field的值非空,則必須是合法的郵件地址)

  • url(網址校正器,要求如果field的值非空,則必須是合法的url地址)

  • date(日期校正器,要求field的日期值必須在指定範圍內,min指定最小值,max指定最大值)

  • conversion(轉換校正器,指定在類型轉換失敗時,提示的錯誤資訊)

  • visitor(用於校正action中的複合屬性,它指定一個校正檔案用於校正複合屬性中的屬性)

  • expression(OGNL運算式校正器,expression參數指定ognl運算式,該邏輯運算式基於ValueStack進行求值,返回true時校正通過,否則不通過,該校正器不可用在欄位校正器風格的配置中)

 校正器的使用例子required  必填校正器<field-validator type="required">       <message>性別不可為空!</message></field-validator> requiredstring  必填字串校正器<field-validator type="requiredstring">       <param name="trim">true</param>       <message>使用者名稱不可為空!</message></field-validator> stringlength:字串長度校正器<field-validator type="stringlength"><param name="maxLength">10</param><param name="minLength">2</param><param name="trim">true</param><message><![CDATA[產品名稱應在2-10個字元之間]]></message></field-validator> email:郵件地址校正器<field-validator type="email"><message>電子郵件地址無效</message></field-validator> regex:Regex校正器<field-validator type="regex">     <param name="expression"><![CDATA[^1[358]\d{9}$]]></param>     <message>手機號格式不正確!</message></field-validator> int:整數校正器<field-validator type="int"><param name="min">1</param><param name="max">150</param><message>年齡必須在1-150之間</message></field-validator> 欄位OGNL運算式校正器<field name="imagefile"><field-validator type="fieldexpression"><param name="expression"><![CDATA[imagefile.length() <= 0]]></param><message>檔案不可為空</message></field-validator></field>  

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.