java 验证框架之validated

最近学习到验证是用SpringMVC提供一套后端验证参数的框架,使用@validated可以非常简单轻松进行参数校验。

使用方法:

       在实体类的bean的字段属性上使用验证的相关注解进行判断如:

 

        @Size(min=5,max=15,message="用户名长度为5-15个字符")
        @NotBlank(message=“用户不能为空”)
        private String userName;

其中@size:作用是判断参数的长度,@ NotBlank:判断参数是否为空,且去空格后长度不能(@NotNull:判断参数不为null,@ NotEmpty:用于集合或者数据上,不能为null且且大小不能为0);消息:为校验失败返回信息

       对于其他有特殊字符条件验证的可以使用正则表达式进行判断:@Pattern(regexp =“^ 1(3 | 4 | 5 | 7 | 8)\\ d {9} $”,message =“手机号码格式错误“)

         在控制层中只需要在参数前添加@Validated注解即可使用,并且在对应验证参数后,跟BindingResult参数作为校验结果返回值信息注意:代校验参数必须和校验返回值一一对应:@Validated @RequestBody adminUserModel adminUserModel,BindingResult bindingResult,若有多个参数校验则需要:@validated A,BindingResult a,@ validated B b,BindingResult b

          获取校验结果信息:bindingResult.hasErrors()判断是否有未通过校验的参数,若有则FieldError fieldError = bindingResult.getFieldError();取得错误字段,fieldError.getDefaultMessage():拿到校验错误消息信息。

附:

  若项目中由于某种原因无法使用注解,那么我们只需要手动获取验证器即可:

Set<ConstraintViolation<Entity>> set=Validation.buildDefaultValidatorFactory().getValidator().validate(对象参数);

判断set的大小是否大于0,若大于0则表示有参数未通过验证,则循环取出验证结果即可:

                    for (ConstraintViolation<MaterCigmatqcEntity> constraintViolation : set) {
                        constraintViolation.getMessageTemplate();//验证信息
                    }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值