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>
?- 主要功能是:
? 使用配制文件,
??? 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,看自己習慣了。它用途是初始化配置,需要指定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
????






?? 然后,為需要進行驗證的form聲明一個驗證bean?
??









?formClass就是SimpleFormController的commandClass
?validatorName就是在配制中聲明的form名稱
?page 默認值是0,如果是0 ,可以不聲明。
???
?最后,聲明需要驗證的bean的validator為上一步聲明的bean
?







