JSR303

作者: 闻乐 | 来源:发表于2021-10-15 21:59 被阅读0次

    新版springboot 需要maven引入

    <dependency>

     <groupId>org.springframework.boot</groupId>

     <artifactId>spring-boot-starter-validation</artifactId>

     </dependency>

    1.给bean添加校验注解

    注解都在javax.validation.constraints ,并定义自己的message提示

    @NotBlank(message ="最后修改时间不能为空!")

    private DatelastModifyDate;

    中文提示在ValidationMessages_zh_cn.properties

    2.@Valid 启动校验

    3.给校验的bean后紧跟一个BindingResult,就可以获取到校验的结果

    public R save(@Valid @RequestBody GameEntity game, BindingResult result){

    if(result.hasErrors()){

    Map map =new HashMap<>();

    //获取校验的错误结果

            result.getFieldErrors().forEach((item)->{

    //FieldError 获取到错误提示

            String message =  item.getDefaultMessage();

    //获取到错误的属性名字

            String field = item.getField();

    map.put(field,message);

    });

    return R.error(400,"提交的数据不合法!").put("data",map);

    }else{

    }

    gameService.save(game);

    return R.ok();

    }

    正则表达式

    /**

    * 检索首字母

    */

    @NotEmpty

    @Pattern(regexp ="/^[a-zA-Z]$/", message ="检索首字母必须是一个字母")

    private Stringdescript;

    /**

    * 排序

    */

    @NotNull

    @Min(value =0,message ="排序必须大于等于0")

    private Integersort;

    4.统一的异常处理

    @Slf4j

    @RestControllerAdvice(basePackages ="com.terry.gamehall.gms.controller")

    public class ExceptionControllerAdvice {

    @ExceptionHandler(value= MethodArgumentNotValidException.class)

    public R handleVaildException(MethodArgumentNotValidException e){

    Map map =new HashMap<>();

    BindingResult result = e.getBindingResult();

    //获取校验的错误结果

            result.getFieldErrors().forEach((item)->{

    //FieldError 获取到错误提示

                String message =  item.getDefaultMessage();

    //获取到错误的属性名字

                String field = item.getField();

    map.put(field,message);

    });

    return R.error(400,"提交的数据不合法!").put("data",map);

    }

    }

    5.分组校验groups,AddGroup是一个接口

    6.自定义校验注解(写在了工程里面)

    1.编写一个自定义的校验注解

    2.编写一个自定义的校验器

    3.关联自定义的校验器和自定义的校验注解

    4.可以使用多个校验器试用不同的校验类型

    相关文章

      网友评论

          本文标题:JSR303

          本文链接:https://www.haomeiwen.com/subject/hhxboltx.html