现在的位置: 首页 > 综合 > 正文

关于Spring中Commons Validator的使用说明

2013年10月10日 ⁄ 综合 ⁄ 共 2427字 ⁄ 字号 评论关闭

springvalidate验证需要两个beanValidatorFactoryBeanValidator)及两xml文件(validator-rules.xmlvalidation.xml)的支持,ValidatorFactory用于制造BeanValidator,后者则是在程序中执行校验的控制beanValidatorrules.xml中定义了各种验证的规则,如字段不为空,字段输入值必须为整数等等。Validation.xml中则定义了那些beanbean中的哪些属性字段需要验证,使用哪些验证规则。validate 分为两级验证,客户端验证(javascript)和服务器端验证。以下是使用validate的步骤:

1.       在配置文件中声明ValidatorFactory BeanValidator

 

<bean  id="validatorFactory" class="org.springmodules.commons.validator.DefaultValidatorFactory"> -----

             <property name="validationConfigLocations"> -----

                <list>

                      <value>/WEB-INF/validator-rules.xml</value>

                      <value>/WEB-INF/validation.xml</value>

                 </list>

             </property>

        </bean>

        <bean id="beanValidator"

class="org.springmodules.commons.validator.DefaultBeanValidator"> -------

             <property name="validatorFactory">

                     <ref bean="validatorFactory" />  --------

             </property>

 </bean>

 

     声明validatoFactory 这里我们使用spring DefaultValidatorFactory

     定义其validationConfigLocations 属性,将validator-rules.xmlvalidation.xml传入

     声明beanValidator 这里我们使用springDefaultBeanValidator

     在其属性中指明要使用的validatorFactory 。这里我们使用刚刚定义的validatorFactory

 

2.       在需要进行验证的controller(即要使用form表单或者commandcontroller)中声明validate

 

<bean id="xxxxController" ……>

<property name="commandName" value="userCommand"/>  -----

<property name="commandClass" value="com.resoft.User"/>   -----

<property name="validator" ref="beanValidator"/>   -------

     ……

</bean>

 

     commandName 用于指明需要验证的 command的名字,这个名字必须和 validation.xml<form name=" xxxxx "> 所写的名字保持一致。

     commandClass用于指定这个command的类型。其必须与你jsp提交的form最后形成的command类型相一致。

     声明该controller使用validator,这里将我们刚刚定义的beanValidator传入进去。

 

3.       validation.xml文件中,定义你要校验的formbean(或者说是command ,定义这个bean中有哪几个field需要验证,使用何种规则验证。(注意:这里定义的form name 必须和前面controller中定义的commandName保持一致)以下是几种常用的验证示例:

 

<form-validation>

<formset>

<form name=" userCommand "> -----

               <field property="userId" depends="required"> -----     

                   <arg0 key="用户代码" /> -------                                          

               </field>    

                                                                

   这里是定义要验证的bean的名字,要求去上面定义的 commandName 相同

   这里定义要验证的bean属性为 userId 使用规则为 required(不为空)

   这里定义的是显示信息,arg0 表示位置 0 的显示信息,显示key 所标明的信息 (如果你还有多个信息就用 arg1arg2 等)出错信息将会显示为:  用户代码 不能为空 

 

 

<field property="age" depends="required,integer,mask"> -----

                   <arg0 key="年龄" />

                   <msg name

抱歉!评论已关闭.