spring错误校验

springmvc的错误校验:
    1.在spring的配置文件中配置校验器:
       
<mvc:annotation-driven validator="validator"></mvc:annotation-driven>

        <!-- 配置校验器 ,需要配置到处理器适配器中,因为使用的是注解驱动,可以在mvc:annotation-driven标签中设置validator属性为校验器的id-->
        <bean id="validator"
            class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
            <!-- 校验器,使用hibernate的校验框架 -->
            <property name="providerClass" value="org.hibernate.validator.HibernateValidator" />
            <!-- 指定校验使用的资源文件,如果不指定则默认使用classpath下的ValidationMessage.properties -->
            <property name="validationMessageSource" ref="messageSource" />
        </bean>

        <!-- 配置校验错误信息配置文件 -->
        <bean id="messageSource"
            class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
            <!-- 资源文件名 -->
            <property name="basename">
                <list>
                    <value>classpath:CustomValidationMessages</value>
                </list>
            </property>
            <!-- 资源文件编码格式 -->
            <property name="fileEncodings" value="utf-8" />
            <!-- 资源文件缓存时间(120秒后重新加载) -->
            <property name="cacheSeconds" value="120" />
        </bean>


    2.在实体类中的相应的属性上添加校验标注:
       
//名称在1到20个字符之间,message就是校验出错时提示的信息
        @Size(min=1,max=20,message="${items.name.length.error}")
        private String itemName;
        @NotNull(message="${items.price.isnull}")
        private String itemPrice;


    3.在controller中的相应形参中添加@Validated标注,在其后添加BindingResult bindingResult形参,用来接收校验出错信息,
         每一个添加了@Validated注解的形参后面都对应一个BindingResult bindingResult形参。用法如下:
       
 if (bindingResult.hasErrors()) {
            List<ObjectError> list = bindingResult.getAllErrors();
            for (ObjectError objectError : list) {
                System.out.println(objectError.getDefaultMessage());
            }
         }


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值