隨筆-61  評論-159  文章-0  trackbacks-0
                  在struts2中使用validation校驗框架,如果想對某個類似于execute方法進行校驗,xml的校驗文件的命名規(guī)則為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",如果某個被標記為短路的校驗器失敗了,將會阻止其他后續(xù)的校驗器的進行,然后一個錯誤(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>

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

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

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




          -------------------------------------------------------------------------------------------------
          PS:本博客文章,如果沒有注明是有“轉(zhuǎn)”字樣,屬于本人原創(chuàng)。如果需要轉(zhuǎn)載,務(wù)必注明作者文章的詳細出處地址,否則不允許轉(zhuǎn)載,多謝合作!
          posted on 2008-11-29 21:35 apple0668 閱讀(1149) 評論(0)  編輯  收藏 所屬分類: struts2
          主站蜘蛛池模板: 玉山县| 城市| 绥棱县| 尤溪县| 泽库县| 奉新县| 洛宁县| 镇原县| 成安县| 正定县| 河东区| 新绛县| 门头沟区| 巴楚县| 仪陇县| 广水市| 瑞金市| 钟祥市| 福州市| 新郑市| 兴城市| 泸定县| 开封县| 新营市| 双峰县| 怀安县| 福贡县| 襄城县| 岚皋县| 北安市| 雷州市| 罗甸县| 广西| 台州市| 新乡市| 富宁县| 县级市| 黑山县| 漳州市| 金寨县| 栾川县|