目录
目录
一. 简单实现
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. 编写数据校验处理器(此处可以填写多个数据校验处理器)