你的位置:首页 > 软件开发 > Java > 用好spring mvc validator可以简化代码

用好spring mvc validator可以简化代码

发布时间:2016-09-02 00:00:05
表单的数据检验对一个程序来讲非常重要,因为对于客户端的数据不能完全信任,常规的检验类型有:参数为空,根据不同的业务规定要求表单项是必填项参数值的有效性,比如产品的价格,一定不能是负数多个表单项组合检验,比如在注册时密码与确认密码必须相同参数值的数据范围,常见的是一些状态值,或者叫 ...

用好spring mvc validator可以简化代码

用好spring mvc validator可以简化代码

表单的数据检验对一个程序来讲非常重要,因为对于客户端的数据不能完全信任,常规的检验类型有:

  • 参数为空,根据不同的业务规定要求表单项是必填项
  • 参数值的有效性,比如产品的价格,一定不能是负数
  • 多个表单项组合检验,比如在注册时密码与确认密码必须相同
  • 参数值的数据范围,常见的是一些状态值,或者叫枚举值,如果传递的参数超出已经定义的枚举那么也是无意义的

上面的这些检验基本上都是纯数据方面的,还不算具体的业务数据检验,下面是一些强业务相关的数据检验

  • 根据产品ID,去检验ID是否真实存在
  • 注册用户时,需要检验用户名的唯一性
  • ....

Hibernate validator,它是JSR-303的一种具体实现。它是基于注解形式的,我们看一下它原生支持的一些注解。

注解说明
@Null只能为空,这个用途场景比较少
@NotNull不能为空,常用注解
@AssertFalse必须为false,类似于常量
@AssertTrue必须为true,类似于常量
@DecimalMax(value) 
@DecimalMin(value) 
@Digits(integer,fraction) 
@Future代表是一个将来的时间
@Max(value)最大值,用于一个枚举值的数据范围控制
@Min(value)最小值,用于一个枚举值的数据范围控制
@Past代表是一个过期的时间
@Pattern(value)正则表达式,比如验证手机号,邮箱等,非常常用
@Size(max,min)

限制字符长度必须在min到max之间

 

 

 

 

 

 

 

 

 

 

 

 

 

 基础数据类型的使用示例

@NotNull(message = "基础数量不能为空")  @Min(value = 0,message = "基础数量不合法")  private Integer baseQty;
需要在mvc的配置文件中增加如下节点以启动检验

 <mvc:annotation-driven validator="validator"> <bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">    <property name="providerClass" value="org.hibernate.validator.HibernateValidator"/>    <property name="validationMessageSource" ref="messageSource"/>  </bean>  <bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">    <property name="useCodeAsDefaultMessage" value="false"/>     <property name="defaultEncoding" value="UTF-8"/>  </bean>


原标题:用好spring mvc validator可以简化代码

关键词:Spring

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录