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

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

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

          <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", "事故發(fā)生時間起 不可為空.", new Function ("varName", "this.datePatternStrict='yyy-MM-dd'; return thisvarName];"));
                         this.ab = new Array("sgfssjz", "事故發(fā)生時間止 不可為空.", new Function ("varName", "this.datePatternStrict='yyy-MM-dd';  return this[varName];"));   
                     }

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

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

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

          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
          主站蜘蛛池模板: 越西县| 田林县| 合水县| 沙田区| 固镇县| 合江县| 肥城市| 腾冲县| 绵竹市| 莱阳市| 武平县| 滁州市| 靖州| 资阳市| 岳西县| 保定市| 延边| 永修县| 邯郸市| 建始县| 岫岩| 贵州省| 阿坝| 无锡市| 洪雅县| 台南县| 台前县| 温泉县| 清水河县| 锦屏县| 石河子市| 哈尔滨市| 汶上县| 嘉黎县| 和田市| 塔城市| 班戈县| 凯里市| 内乡县| 大洼县| 开远市|