隨筆-61  評論-159  文章-0  trackbacks-0
                  在struts2中使用validation校驗框架,如果想對某個類似于execute方法進行校驗,xml的校驗文件的命名規則為action名-方法名-validation.xml,對應action中繼承另外一個action兩者都有校驗xml,那么校驗順序如下:
          RegisterAction extends BaseAction,如果兩個action里面要對方法進行校驗,那校驗文件的搜索路徑如下:

          BaseAction-validation.xml,BaseAction-Xxx-validation.xml,RegisterAction-validation.xml,Register-Xxx-validation.xml

                   短路校驗,在字段校驗或者非字段校驗中加入:short-circuit="true"如果某個被標記為短路的校驗器失敗了,將會阻止其他后續的校驗器的進行,然后一個錯誤(action錯誤或者字段錯誤,取決于校驗器的類型)將會被添加到被校驗的對象的ValidationContext中
                               
          <!DOCTYPE validators PUBLIC
          "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
          "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
          <validators>
          <!-- Field Validators for email field -->
          <field name="email">
          <field-validator type="required" short-circuit="true">
          <message>You must enter a value for email.</message>
          </field-validator>
          <field-validator type="email" short-circuit="true">
          <message>Not a valid e-mail.</message>
          </field-validator>
          </field>
          <!-- Field Validators for email2 field -->
          <field name="email2">
          <field-validator type="required">
          <message>You must enter a value for email2.</message>
          </field-validator>
          <field-validator type="email">
          <message>Not a valid e-mail2.</message>
          </field-validator>
          </field>
          <!-- Plain Validator 1 -->
          <validator type="expression">
          <param name="expression">email.equals(email2)</param>
          <message>Email not the same as email2</message>
          </validator>
          <!-- Plain Validator 2 -->
          <validator type="expression" short-circuit="true">
          <param name="expression">email.startsWith('mark')</param>
          <message>Email does not start with mark</message>
          </validator>
          </validators>

          在上面的例子中,實際的校驗器執行是這樣的:

          1. Plain Validator 1
          2. Plain Validator 2
          3. email字段的字段校驗器
          4. email2字段的字段校驗器

          因為普通校驗器2是短路的,如果它的校驗失敗,它會導致email字段的校驗器和email2字段的校驗器不會被執行.




          -------------------------------------------------------------------------------------------------
          PS:本博客文章,如果沒有注明是有“轉”字樣,屬于本人原創。如果需要轉載,務必注明作者文章的詳細出處地址,否則不允許轉載,多謝合作!
          posted on 2008-11-29 21:35 apple0668 閱讀(1151) 評論(0)  編輯  收藏 所屬分類: struts2
          主站蜘蛛池模板: 准格尔旗| 广汉市| 柯坪县| 鄢陵县| 名山县| 潜山县| 西林县| 德钦县| 鄂伦春自治旗| 巴彦淖尔市| 长顺县| 新宾| 杭州市| 龙海市| 合川市| 噶尔县| 长顺县| 昌图县| 太原市| 山西省| 类乌齐县| 旬阳县| 刚察县| 内黄县| 南昌市| 伊金霍洛旗| 曲周县| 宁乡县| 金坛市| 禄丰县| 三明市| 两当县| 景德镇市| 香港| 淳安县| 五华县| 石嘴山市| 泉州市| 宜春市| 新宁县| 措美县|