隨筆-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 閱讀(1149) 評論(0)  編輯  收藏 所屬分類: struts2
          主站蜘蛛池模板: 汶上县| 乌拉特中旗| 南岸区| 丁青县| 江永县| 汉川市| 库尔勒市| 永州市| 刚察县| 仁寿县| 平和县| 景宁| 乌恰县| 北海市| 汤阴县| 澄城县| 鄱阳县| 察哈| 郎溪县| 尼木县| 镶黄旗| 利川市| 礼泉县| 裕民县| 海南省| 萨迦县| 丹巴县| 金平| 运城市| 棋牌| 大丰市| 垦利县| 澄迈县| 竹山县| 张家界市| 博兴县| 辉县市| 大安市| 灵石县| 乡城县| 菏泽市|