SpringValidate配置

在一个老的项目中添加功能,发现系统使用的spring validate机制。

因为没使用过这个功能,照着配置一边发现错误。

所以去百度了一些spring validate配置的资料。

记录配置步骤如下:

1validator.xml添加需要验证的对于实体类的配置。Formname属性值应该是实体类名这样统一。

<formname="BeanClass">
<field property="name" depends="required, maxlength,isNameExist">
<var>
<var-name>maxlength</var-name>
<var-value>1最大长度</var-value>
</var>


<arg position="0" key="属性名称"/>
<arg position="1" key="最大长度值多少"/>
</field>

</form>

2、配置Application.xml

  (1) 服务器和客户端验证

<!--commons-validate 服务器和客户端验证 -->

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

                   <propertyname="validationConfigLocations">

                            <list>

                                     <value>classpath:validator-rules.xml</value>

                                     <value>classpath:validator.xml</value>

                            </list>

                   </property>

         </bean>

         <bean id="beanValidator"class="org.springmodules.validation.commons.DefaultBeanValidator">

                   <propertyname="validatorFactory" ref="validatorFactory"/>

         </bean>   

 (2)模块对应的Controller,必须注入beanValidator

<beanid="*Controller" class="*.*.*">
<property name="*Mgr">
<ref bean="对应管理类beanID"/>
</property>

<!--这里使用的是sessionForm ,有的地方使用的是<propertyname="commandName" value="userCommand"/> 因为我们项目是这样使用的所以统一配置->
<property name="sessionForm"value="true" />
<property name="commandClass" value="com.test.BeanClass"/>
<property name="validator"ref="beanValidator" />
<property name="formView" value="edit.jsp" />
<property name="successView" value="success.jsp" />
</bean>

3、配置edit.jsp,在jsp加入如下标签。BeanClass的名称要和commandClassname一致,也要和validate.xml中得formname属性一致,如BeanClass

<scripttype="text/javascript" src="<c:urlvalue="/js/validator.jsp"/>"></script>
<validator:javascript formName="BeanClass"staticJavascript="false" />

 

<%@ page language="java"contentType="javascript/x-javascript" %>

<%@ taglib prefix="validator"uri="http://www.springmodules.org/tags/commons-validator"%>

<validator:javascriptdynamicJavascript="false" staticJavascript="true"/>

在输入栏后加入显示错误信息方法

<form:input path="sign" />&nbsp;<font color="red">*</font>&nbsp;&nbsp;
<font color="red"><form:errors path="sign"/></font>

4、如果需要检查实体属性是否重合需要在实体类中加入方法isNameRepeat

   public boolean isNameRepeat(ValidatorAction va, Field field, Errorserrors) {

                   if("name".equalsIgnoreCase(field.getKey())) {                                            

                            Collectioncoll = HibernateUtil.find("from BeanClass a" +

                                               "where a.name= '"+this.getName()+"' and a.id !=" + this.getId());

                            if(!coll.isEmpty()){

                                     FieldChecks.rejectValue(errors,field, va);

                                     returnfalse;                                

                            }

         }     

SPring不是很熟,如果有错请不吝赐教

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值