侧边栏壁纸
博主头像
王小木博主等级

这是很长,很好的一生

  • 累计撰写 129 篇文章
  • 累计创建 39 个标签
  • 累计收到 3 条评论

目 录CONTENT

文章目录

使用@Valid注解手动校验

王小木
2021-08-25 / 0 评论 / 0 点赞 / 377 阅读 / 905 字

使用@Valid注解去校验的时候,一般我们在controller的方法传参时就加上注解,但是在业务时有时有的字段需要校验,有时有的字段又不需要校验,又是使用同一个接口,同一个对象,很难区别开,如果在方法上加@Valid 注解就很难区分了,所以可以在业务中手动校验,分别创建两个校验的对象,根据业务配合BeanUtils.copyProperties() 将接收的表单对象复制到相应的类,再分别校验。

//手动验证 
            Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
            Set<ConstraintViolation<Object>> constraintViolations = validator
                    .validate(demandRequest);//验证某个对象,,其实也可以只验证其中的某一个属性的
            Iterator<ConstraintViolation<Object>> iter = constraintViolations
                    .iterator();
            List<String> error = new ArrayList<>();
            while (iter.hasNext()) {
                String message = iter.next().getMessage();
                error.add(message);
            }
            if (error.size() > 0) {
                throw new ScInternalExceptionV2(ScDemandExceptionEnum500.PARAMETER_ERROR, error.get(0));
            }
0

评论区