锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

工具 - JRS303入参校验

时间:2023-03-06 05:30:00 jrs1ds过载继电器

工具 - JRS303入参校验

前提:

             <dependency>             <groupId>cn.hutoolgroupId>             <artifactId>hutool-allartifactId>             <version>5.5.2version>         dependency>                         <dependency>             <groupId>org.hibernate.validatorgroupId>             <artifactId>hibernate-validatorartifactId>         dependency> 

方式一

我一直在用朋友推荐的验证方法,先分享工具

package com.khoodys.jingdezhen.utils;  import cn.hutool.core.util.StrUtil;  import javax.validation.ConstraintViolation; import javax.validation.Validation; import java.util.Set;  public class Jrs303Util { 
              public static String check(Object obj) { 
                 if (null == obj) { 
                     return "信息不能为空";         }
        Set<ConstraintViolation<Object>> validResult = Validation.buildDefaultValidatorFactory().getValidator().validate(obj);
        if (null != validResult && validResult.size() > 0) { 
        
            StringBuilder sb = new StringBuilder();
            for (ConstraintViolation<Object> constraintViolation : validResult) { 
        
                if (StrUtil.isNotBlank(constraintViolation.getMessage())) { 
        
                    sb.append(constraintViolation.getMessage()).append("、");
                } else { 
        
                    sb.append(constraintViolation.getPropertyPath().toString()).append("不符合要求、");
                }
            }
            if (sb.lastIndexOf("、") == sb.length() - 1) { 
        
                sb.delete(sb.length() - 1, sb.length());
            }
            return sb.toString();
        }
        return null;
    }
 }

小提示 这种方式如果前端没有加校验,后端返回的数据可能会很多,影响用户体验,建议获取到信息直接返回。

使用方式

    /** * 标准名称(含代码) */
    @NotBlank(message = "标准名称不允许为空")
    private String standardName;

在接口中可以直接使用

	@PostMapping("/add")
    public ResultVO<String> addAcademicTeaching(@RequestBody AcademicTeaching academicTeaching) { 
        
        String message = Jrs303Util.check(academicTeaching);
        if (StrUtil.isNotBlank(message)) { 
        
            return ResultVO.error(message);
        }
        //...
        return ResultVO.success();
    }

方式二

推荐地址:
作者:稚友22
链接:https://www.jianshu.com/p/d2ddd856cce2
来源:简书

这种是通过原生注解的形式,将错误信息通过全局异常拦截,封装后返回

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章