spring 后台对象为空校验@Valid的用法以及配置。以及@Valid抛出异常问题分析

需要引入

<dependency>

    <groupId>javax.validation</groupId>

    <artifactId>validation-api</artifactId>

    <version>1.1.0.Final</version>

</dependency>
<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-validator</artifactId>
    <version>5.4.1.Final</version>
</dependency>

第二步在springmvc.xml中加入

<bean id="validator"
      class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
       <property name="providerClass"  value="org.hibernate.validator.HibernateValidator"/>
       <!-- 如果不加默认到 使用classpath下的 ValidationMessages.properties -->
</bean>

按照下列把validator对象进行初始化绑定(如若xml中用到mvc:annotation-driven配置的话。不需要这步操作。mvc:annotation-driven默认进行了如下操作)

<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
       <property name="cacheSeconds" value="0"/>
       <property name="messageConverters" ref="messageConverters"/>
       <property name="webBindingInitializer">
              <bean class="org.springframework.web.bind.support.ConfigurableWebBindingInitializer">
                     <property name="validator" ref="validator" />
              </bean>
       </property>
    
</bean>

第三步如果用需要在具体Controller进行validator对象注入。不然不生效。我这里是写了基础控制器,其他控制器继承此类就可以

具体用法(如果不让其抛出异常。而是正常在controller进行错误信息返回,需要把@Valid的参数和Errors参数紧邻在一起,因为代码中有一处判断

所以把要验证的参数和Errors相邻,就可以了

 

如果说的不清楚,可以更详细的问我(或加我qq1512180909)。以上均是实践操作而来的。不是从网上随便抄的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王威振的csdn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值