Struts2驗證架構使用

來源:互聯網
上載者:User
2009-11-04 10:51 Struts2 驗證架構 validation.xml 常用的驗證規則 validation.xml 的命名規則和放置路徑:

檔案名稱:<ActionClassName>-validation.xml

<ActionClassName>就是要驗證的Action類的名字。
要將此檔案放於Class檔案相同的目錄。

如果在Action類在struts配置中有多個action執行個體(action name),那麼對應某個action的驗證檔案名稱規則如下:

檔案名稱:<ActionClassName>-<aliasName>-validation.xml

例如:UserAction-login-validation.xml

(注意:上面的<aliasName>並不是method name,而是struts.xml中配置的action的name)

validation.xml 的內容樣本:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">此處已經不可用要換成如下
<!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.2//EN" "http://struts.apache.org/dtds/xwork-validator-1.0.2.dtd">
<validators>

<field name="username">

<field-validator type="requiredstring">
<param name="trim">true</param>
<message>請填寫使用者名稱</message>
</field-validator>

<field-validator type="stringlength"> 
<param name="minLength">4</param>
<param name="maxLength">32</param> 
<message>使用者名稱長度應在4到32個字元間</message> 
</field-validator>

</field>

<field name="password">

<field-validator type="requiredstring">
<message>請填寫密碼</message>
</field-validator>

<field-validator type="stringlength"> 
<param name="minLength">6</param>
<param name="maxLength">32</param> 
<message>為了您帳號的安全,請設定6個字母以上的密碼(最長可設定32個字母)</message> 
</field-validator>

</field>
</validators>

Struts2 的驗證規則大概有以下數種:

required:必填校正器
requiredstring:必填字串校正器
int:整數校正器
double:雙精確度浮點數校正器
date:日期校正器
expression:運算式校正器
fieldexpression:欄位運算式校正器
email:電子郵件校正器
url:網址校正器
visitor:Visitor校正器
conversion:轉換校正器
stringlength:字串長度校正器
regex:Regex校正器

具體的使用方法可以GOOGLE,下面舉例幾種常用的驗證規則:

常用的驗證規則:

1。必填檢驗
<validators>
<field name="username">
<field-validator type="required">
  <message>指定檢驗失敗的提示資訊</message>
</field-validator>
</field>
</validators>

2。必填字串檢驗
<validators>
<field name="username">
<field-validator type="requiredstring">
  <param name="trim">true</param>
  <message>指定檢驗失敗的提示資訊</message>
</field-validator>
</field>
</validators>

3。整數檢驗器/浮點檢驗
<validators>
<field name="age">
<field-validator type="int">
  <param name="min">1</param>
  <param name="max">150</param>
  <message>年紀必須在1到150之間</message>
</field-validator>
   </field>
</validators>

4。日期檢驗
<validators>
<field name="birth">
<field-validator type="date">
  <param name="min">1900-01-01</param>
  <param name="max">2050-02-21</param>
  <message key="birth.range"/>
</field-validator>
</field>
</validators>

5.欄位運算式檢驗器(要求指定欄位滿足一個邏輯運算式)
<validators>
<field name="re_pass">
   <field-validator type="fieldexpression">
    <!--指定邏輯運算式 -->
        <param name="expression"> (pass eq re_pass)</param>
         <message>密碼必須和確認密碼相等</message>
   </field-validator>
</field>
</validators>

6.郵件地址校正
<validators>
<field name="email">
   <field-validator type="email">
         <message>你的電子郵件地址必須是一個有效電郵地址</message>
   </field-validator>
</field>
</validators>

7。網址檢驗
<validators>
<field name="url">
   <field-validator type="url">
         <message>你的首頁地址必須是一個有效網址</message>
   </field-validator>
</field>
</validators>

8.字串長度檢驗
<validators>
<field name="user">
<field-validator type="stringlength">
  <param name="minlength">4</param>
  <param name="maxlength">20</param>
  <message>你的使用者名稱長度必須在4到20之間</message>
</field-validator>
   </field>
</validators>

9.Regex檢驗

<validators>
<field name="user">
<field-validator type="regex">
  <param name="expression_r"><![CDATA[(\w{4,25})]]></param>
  <message>您輸入的使用者名稱只能是字母和數組,且長度必須在4到25之間</message>
</field-validator>
   </field>
</validators>
沒有看完這個的你悲劇了,最後要在Struts設定檔中配置<result name="input">/login.jsp</reslut>這個不能少否則驗證架構沒有效果。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.