天天看點

Struts2 驗證規則配置檔案

1. Action級别校驗命名格式:

ActionClassName-validation.xml

2. Action中某個方法的校驗命名格式:

ActionClassName-ActionAliasName-validation.xml

注意:這裡的ActionAliasName(action别名)指的是struts.xml中Action name="XX"的xx的名稱,而不是method="XX"的名稱。

3. 如果以上2個校驗檔案都存在,那麼2個檔案都會被執行;如果2個校驗檔案中的校驗屬性相同那麼将被執行同校驗屬性中ActionClassName-ActionAliasName-validation.xml中的校驗規則。

4. 在使用visitor校驗器的時候,<message>out</message>必須要配置且out消息必須得寫,否則會報空指針錯誤。

5. 正規表達式校驗配置

<?xml version="1.0" encoding="UTF-8"?>
<!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="user.username">
        <field-validator type="requiredstring">
            <param name="trim">true</param>
            <message>使用者名不能為空</message>
        </field-validator>
        <field-validator type="regex">
            <param name="regex"><![CDATA[(\w{4,10})]]></param>
            <message>姓名要在4-10位之間</message>
        </field-validator>
    </field>

    <!-- 添加對密碼的校驗 -->
    <field name="user.password">
        <field-validator type="requiredstring">
            <param name="trim">true</param>
            <message>密碼不能為空</message>
        </field-validator>
        <field-validator type="regex">
            <param name="regexExpression"><![CDATA[(\w{4,10})]]></param>
            <message>密碼輸入不合法,必須為長度在4~10之間的數字或者字母</message>
        </field-validator>
    </field>
</validators>      

其中以上配置檔案中紅色的屬性是正确的。官方的Demo中的屬性如下:

<!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.3//EN"
        "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
<validators>
  <field name="bar">
      <field-validator type="regex">
          <param name="expression">[0-9],[0-9]</param>
          <message>The value of bar must be in the format "x, y", where x and y are between 0 and 9</message>
     </field-validator>
  </field>
</validators>      

如果屬性配置成“expression”,将不能正确進行屬性驗證!

作者:

Candyメ奶糖

出處:

http://www.cnblogs.com/Candies/

本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利。

博文來源廣泛,如原作者認為我侵犯知識産權,請盡快給我發郵件

[email protected]

聯系,我将以第一時間删除相關内容。