首先看下这位网友的文章。
http://haohaoxuexi.iteye.com/blog/1812584
如上所述,spring支持的校验框架,一种是自己实现org.springframework.validation.Validator接口,一种是JSR303标准并采用hibernate的实现。相比之下,前者需要为每个被校验对象进行实现,而后者基于注解,虽然学习曲线稍多一些,但熟练后效率高得多。
两者都是通过controller方法声明中的@Valid注解表明该对象需要校验,并用紧随其后的BindingResult对象获取校验结果。
有时候,我可能需要在controller之外的地方进行校验,同时想利用JSR303的注解规则。
首先先注册相应的validator实现
<bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"> </bean>
然后定义messageSource.这在使用JSR303注解时可以更灵活地指定报错message,同时支持国际化
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource"> <property name="basenames"> <list> <value>conf.properties.msg.messages</value> </list> </property> </bean>
然后定义一个工具类,工具类的作用是手动调用validator,并完成message code到具体message的转化。下述代码中根据校验结果的code,通过messageSource进行了动态的获取。API的详细说明可参考http://blog.csdn.net/qyf_5445/article/details/8124306
import java.util.ArrayList; import java.util.List; import java.util.Locale; import java.util.Set; import org.springframework.context.MessageSource; import org.springframework.stereotype.Component; import javax.annotation.Resource; import javax.validation.ConstraintViolation; import javax.validation.Validator; @Component public class ModelValidator { @Resource private Validator validator; @Resource private MessageSource messageSource; public <T> List<String> validate(T object){ Set<ConstraintViolation<T>> results=validator.validate(object); List<String> errorMsg=new ArrayList<String>(); for(ConstraintViolation<T> result :results){ errorMsg.add(result.getPropertyPath().toString()+":"+messageSource.getMessage(result.getMessage(), new Object[0], Locale.CHINA)); } return errorMsg; } }
于是,在需要进行校验的地方,调用该工具类,对使用了JSR303注解的对象进行校验,便可获得校验报错的信息列表。(若无错则列表为空).
该工具类只是个演示,包括动态参数和动态字符集的支持并未写入其中,请各位自己完善。
相关推荐
主要介绍了Spring Validation实现原理分析,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
2020年最新Spring Boot Validation讲透讲全,别找其他的了。包括了平时用到的所有用法以及代码实例。
spring-modules-validation-0.6.jar
spring注解-validation所用到的jar包
spring-validation 基于Spring AOP的参数验证框架,在日常的开发过程中,经常会遇到参数校验的问题,使用这个扩展可以把参数校验的逻辑从业务代码中解藕出来,成为单独的模块,使业务代码看起来更清爽。 环境要求 ...
Annotation-Based Validation with the Spring Bean Validation Framework
resin 支持spring mvc 5.0以上版本 支持Hibernate validation 下载使用即可版本为 resin-4.0.61
非常不错的数据校验jar,与spring的无缝接入,是java pojo对象校验的好框架。
validation spring2.5 + spring-modules-validation 扩展 满足业务上复杂的判断逻辑,包括错误码动态设定,和业务逻辑判断
主要介绍了Spring-Validation 后端数据校验的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
主要介绍了如何使用Spring Validation优雅地校验参数,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
常用jar包
odelay.zip,提供延迟执行操作的灵长类动物延迟反应
主要介绍了详解使用spring validation完成数据后端校验,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
使用FormValidation进行表单验证,使用到了jQuery和Bootstrap框架等相关技术
java运行依赖jar包
java运行依赖jar包
springmvc校验器validation的所有配套jar包,有3个jar包
Spring使用XML配置声明式事务 ,具体效果和过程看博文 http://blog.csdn.net/evankaka/article/details/45478007
我正在使用该项目作为有关如何改进传入数据的Spring验证的演示/参考项目。 这个想法是要帮助我摆脱原始痴迷,并改善如何验证数据的方式。 进行改进 确保所有内容都有GET / POST / PUT / DELETE调用。 修复从...