1. 程式人生 > >validators配置要點及No result defined for action報錯解決方案

validators配置要點及No result defined for action報錯解決方案

result 文件 con 屬性 得到 驗證類型 name 命名 請求

在做JavaEE SSH項目時,接觸到validators驗證。

需要了解validators配置,或者遇到No result defined for action 這個錯誤時,可查閱本文得到有效解決

現在說說我認為最關鍵的三個要點:

1、文件名命名規則:

  這是action文件名:技術分享

  這是action請求名:技術分享

  這是validators文件名:技術分享

  所以命名規則就是“action文件名-action請求名-validation.xml”

  註意:xml文件要和action文件放在同一包下!

2、jsp內容和validation.xml內容填寫要求:

  jsp的form中必須要有 validate="true"這一屬性,如圖:技術分享

  在jsp界面中要有技術分享這對標簽,用於顯示返回的message

  validation.xml中field標簽的name屬性值要和jsp中待驗證的name屬性值相同,相關的內容設置規則可以參考文末

  技術分享

  技術分享

3、Struts配置

  需要在action result中加入值為input的標簽,指向的鏈接可以是需要驗證的jsp界面,即請求界面本身,message中的提示信息將會顯示到jsp中技術分享標簽所在位置。也可以鏈接到一個error界面,同理。下圖是鏈接到原請求界面的示例:

  技術分享

常用驗證類型

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.正則表達式檢驗
<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

validators配置要點及No result defined for action報錯解決方案