e代劍客——溫柔一刀

          生活就像海洋,只有意志堅強的人,才能到達彼岸

             :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            76 隨筆 :: 7 文章 :: 215 評論 :: 0 Trackbacks
          Spring-Validator 的主要意圖是為 Spring MVC 提供簡潔、可配置的,實現類似于Struts的驗證機制,提高 Spring 的開發效率。
          ?- 主要功能是
          ? 使用配制文件,
          ??? 1. 提供 Spring 客戶端驗證機制;
          ??? 2. 提供 Spring 服務器端通用的可配置的驗證;
          ??
          ??? 如果大家有興趣,請到 http://sourceforge.net/projects/js-validation/ 下載,里邊有例子,建議大家先看看例子(或者看struts-validator的那個例子也可以,效果差不多)。
          ???
          ??? 下邊,我將具體說明
          ??? 1. 客戶端的使用
          ??? 2. 服務器端的使用
          ????
          ??? 由于配置文件和struts中相同,且struts是如此的流行、廣泛,所以不說配制文件的編寫了,請查看struts的相關資料(只需修改使用dist下的validator-rules.xml、validation.xml即可)
          ???
          ??? 1. 客戶端的使用
          ??? 原理呢,就是通過讀取配制,在JSP頁面中生成相應的javascript,然后點擊submit的時候,Alert出相應的信息(雖然很多人討厭這種方式,但這是最快最直接應用最廣的方式,P:個人感覺,沒有數據依據)。
          ??? 具體的過程呢,當然先是開發頁面和程序,然后想到要加入驗證機制,如姓名不能為空,生日必須是 yyyy-mm-dd等,還強烈的想看到客戶在提交后被彈出對話框嚇一跳,那么,我們開始吧,嘿嘿
          ??? 首先,配置先行了,在validation.xml中聲明需要驗證的form。
          ???
          ??? 其次,在 -servlet.xml中,聲明apachValidatorResolvers
          ????
          ????<bean?id="apachValidatorResolvers"?class="com.avidmouse.validator.ApachValidatorResolvers">
          ??
          <property?name="pathnames">
          ???
          <value>validator-rules.xml,validation.xml</value>
          ??
          </property>
          ?
          </bean>

          ??? bean的id不一定非叫 apachValidatorResolvers,看自己習慣了。它用途是初始化配置,需要指定validator-rules.xml,validation.xml的位置,由于犯懶,同時也為了顯示它的用途,沒有提供默認值。
          ???
          ??? 然后,聲明 javascriptValidator???
          ?<bean id="javascriptValidator" class="com.avidmouse.validator.jsvalidator.JavascriptValidatorApach"/>
          ??? 同樣,id不做要求。它的主要是為生成所需的javascript,提供給taglib或者interceptor或者其他。
          ???
          ??? 最后,就是JSP的修改了。
          ????? 加入對驗證taglib的聲明
          ????? <%@ taglib prefix="vld" uri="http://www.avidmouse.com/tags"%>
          ????? 在適當的位置(form后邊),加入taglib引用?
          ?? <vld:validate validationName="registrationForm" page="0"/>
          ????? page 默認值是0,所以page="0"可以省略??
          ????
          ??? 2. 服務器端的使用
          ??? 原理呢,實現org.springframework.validation.Validator,提供一個通用的validator。
          ??? 具體過程,和客戶端的差不多,在需要添加驗證時
          ??? 首先,在validation.xml中聲明需要驗證的form。
          ???
          ??? 其次,在 -servlet.xml中,聲明apachValidatorResolvers
          ????
          <bean?id="apachValidatorResolvers"?class="com.avidmouse.validator.ApachValidatorResolvers">
          ??
          <property?name="pathnames">
          ???
          <value>validator-rules.xml,validation.xml</value>
          ??
          </property>
          ?
          </bean>
          ???????
          ?? 然后,為需要進行驗證的form聲明一個驗證bean?
          ??
          ?<bean?id="registrationValidator"?class="com.avidmouse.validator.commons.ApachValidator">
          ??
          <property?name="apachValidatorResolvers">
          ???
          <ref?local="apachValidatorResolvers"/>
          ??
          </property>
          ??
          <property?name="formClass"><value>com.avidmouse.validator.simple.bus.RegistrationForm</value></property>
          ??
          <property?name="validatorName"><value>RegistrationForm</value></property>
          ??
          <property?name="page"><value>0</value></property>????
          ?
          </bean>

          ?formClass就是SimpleFormController的commandClass
          ?validatorName就是在配制中聲明的form名稱
          ?page 默認值是0,如果是0 ,可以不聲明。
          ???
          ?最后,聲明需要驗證的bean的validator為上一步聲明的bean
          ?
          <bean?id="registration"?class="com.avidmouse.validator.simple.web.RegFormController">
          ????????
          <property?name="sessionForm"><value>true</value></property>
          ????????
          <property?name="commandClass"><value>com.avidmouse.validator.simple.bus.RegistrationForm</value></property>
          ????????
          <property?name="validator"><ref?bean="registrationValidator"/></property>
          ????????
          <property?name="formView"><value>registration</value></property>
          ????????
          <property?name="successView"><value>regInfo</value></property>
          ????
          </bean>
          posted on 2006-08-22 10:57 溫柔一刀 閱讀(1584) 評論(0)  編輯  收藏 所屬分類: 開源框架
          聯系偶 zhupanjava@gmail.com 溫柔一刀
          主站蜘蛛池模板: 水城县| 德惠市| 托克逊县| 崇仁县| 宝山区| 铜鼓县| 阿拉善右旗| 吴桥县| 垫江县| 堆龙德庆县| 宜阳县| 天峨县| 专栏| 页游| 沁水县| 孙吴县| 三门峡市| 布拖县| 湖南省| 揭西县| 广水市| 新邵县| 涞水县| 华池县| 章丘市| 饶阳县| 新龙县| 周口市| 宁武县| 略阳县| 新昌县| 呼图壁县| 老河口市| 虞城县| 酒泉市| 海门市| 乐业县| 乐山市| 靖边县| 三都| 遵化市|