隨筆 - 63  文章 - 0  trackbacks - 0
          <2009年5月>
          262728293012
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          struts的validator的客戶端驗證,不能進行多表單頁面的驗證,原因是由<html:script>標簽生成的javascipt是根據每個表單,生成一段代碼。例如:

          <html:javascript formName="searchSgbySjForm" dynamicJavascript="true" staticJavascript="false"/>
          生成  :
                       var bCancel = false; 
                       function validateSearchSgbySjForm(form)
                      {                                                                         
                          if (bCancel)       return true;        
                          else        return validateRequired(form) && validateDate(form);   
                      }
                      function required ()
                     {     
                         this.aa = new Array("sgfssjq", "事故發生時間起 不可為空.", new Function ("varName", "this.datePatternStrict='yyy-MM-dd'; return thisvarName];"));
                         this.ab = new Array("sgfssjz", "事故發生時間止 不可為空.", new Function ("varName", "this.datePatternStrict='yyy-MM-dd';  return this[varName];"));   
                     }

                     function DateValidations ()
                    {
                        this.aa = new Array("sgfssjq", "事故發生時間起 不是有效的日期類型.", new Function ("varName", "this.datePatternStrict='yyy-MM-dd';  return this  [varName];"));
                       this.ab = new Array("sgfssjz", "事故發生時間止 不是有效的日期類型.", new Function ("varName", "this.datePatternStrict='yyy-MM-dd';  return this[varName];"));   
                   }

          如果有多個的話required和DateValidations 都會重復的,而javascript是只認最后一個函數的。所以,會導致驗證出錯。

          再寫一個標簽 ,主要根據原來的代碼修改,代碼如下:

          package com.tmri.acd.tag;

          import java.io.IOException;
          import java.util.ArrayList;
          import java.util.Collections;
          import java.util.Comparator;
          import java.util.Iterator;
          import java.util.List;
          import java.util.Locale;
          import java.util.Map;

          import javax.servlet.jsp.JspException;
          import javax.servlet.jsp.JspWriter;
          import javax.servlet.jsp.PageContext;
          import javax.servlet.jsp.tagext.BodyTagSupport;

          import org.apache.commons.validator.Field;
          import org.apache.commons.validator.Form;
          import org.apache.commons.validator.ValidatorAction;
          import org.apache.commons.validator.ValidatorResources;
          import org.apache.commons.validator.util.ValidatorUtils;
          import org.apache.commons.validator.Var;
          import org.apache.struts.Globals;
          import org.apache.struts.action.ActionMapping;
          import org.apache.struts.config.ModuleConfig;
          import com.tmri.acd.tag.TagUtils;
          import org.apache.struts.util.MessageResources;
          import org.apache.struts.validator.Resources;
          import org.apache.struts.validator.ValidatorPlugIn;
          import java.util.StringTokenizer;

          public class JavascriptValidatorTag extends BodyTagSupport
          {
           private static final Comparator actionComparator = new Comparator()
          {       
                      public int compare(Object o1, Object o2)
                     {
                           ValidatorAction va1 = (ValidatorAction) o1;           
                           ValidatorAction va2 = (ValidatorAction) o2;
                           if ((va1.getDepends() == null || va1.getDepends().length() == 0) && (va2.getDepends() == null || va2.getDepends().length() == 0))
                          {               
                              return 0;
                          }
                          else if (  (va1.getDepends() != null && va1.getDepends().length() > 0)  && (va2.getDepends() == null || va2.getDepends().length() == 0))
                         {  
                             return 1;
                         }
          }

           

          posted on 2009-05-09 22:59 lanxin1020 閱讀(186) 評論(0)  編輯  收藏 所屬分類: struts1
          主站蜘蛛池模板: 承德县| 勃利县| 兴宁市| 新宁县| 镇雄县| 二手房| 闻喜县| 大石桥市| 临邑县| 浠水县| 林甸县| 通化县| 伊宁县| 兴国县| 长海县| 离岛区| 东兰县| 横峰县| 崇信县| 江山市| 保德县| 望谟县| 呼玛县| 丹巴县| 乌审旗| 南雄市| 广西| 肇州县| 宁国市| 祁连县| 藁城市| 霸州市| 宝丰县| 辉县市| 宝应县| 盱眙县| 乌审旗| 托里县| 琼海市| 长汀县| 泗阳县|