Spring-Validator 说明文档

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

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"可以省略

好了,enjoy it。

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>

好了,enjoy it again。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航