JSR303数据校验

目录

目录

一. 简单实现

二. 加入全局异常捕获

三.自定义数据校验



一. 简单实现

a. 在你的实体类上加上你需要的注解

 在 ValidationMessages.properties下会有很多的默认提示信息你也可以在注解后加message参数进行自定义

b. 在controller层开启校验

添加这个以后会开启校验但是使用的是系统默认的处理

我们可以在你提交的数据的后面紧跟着加上BindingResult 就可以将所有的错误信息封装进去 

这样就是采用自定义的信息进行处理

二. 加入全局异常捕获

这样就可以省略每个controller层都必须加入结果处理直接抛出到全局异常处理进行处理

@RestControllerAdvice(basePackages = "com.systop.gulimall.product.controller")
@Slf4j
public class GulimallExceptionAdvice {

    @ExceptionHandler(value = MethodArgumentNotValidException.class)
    public R handleVaildException(MethodArgumentNotValidException e){
        BindingResult bindingResult = e.getBindingResult();
        List<FieldError> fieldErrors = bindingResult.getFieldErrors();
        Map<String,String> map = new HashMap<>();
        fieldErrors.forEach(item->{
            // 错误的属性名
            String field = item.getField();
            // 错误信息
            String message = item.getDefaultMessage();
            map.put(field,message);

        });
        return R.error(BizCodeEnum.VALID_EXCEPTION.getCode(),BizCodeEnum.VALID_EXCEPTION.getMessage()).put("data",map);
    }

    @ExceptionHandler(value = Throwable.class)
    public R handleException(Throwable throwable){
        return R.error(BizCodeEnum.UNKNOW_EXCEPTION.getCode(),BizCodeEnum.UNKNOW_EXCEPTION.getMessage());
    }
}

三.自定义数据校验

1. 添加自定义数据校验注解

 2. 创建自定义注解类(可以已有的注解进行改写)

 3.编写提示信息

 

 4. 编写数据校验处理器(此处可以填写多个数据校验处理器)

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值