废话不多说直接上代码:
@RequestMapping("/save")
// @Valid是开启JSR303校验,BindingResult result将校验的结果封装到BindingResult
public R save(@Valid @RequestBody BrandEntity brand,BindingResult result){
if(result.hasErrors()){
//遍历这些校验失败的信息
Map<String,String> map=new HashMap<>();
result.getFieldErrors().forEach(item->{
//获取错误信息
String defaultMessage = item.getDefaultMessage();
//获取被校验的字段
String filed= item.getField();
map.put(filed,defaultMessage);
});
return R.error(400,"提交的数据不合法").put("data",map);
}else {
brandService.save(brand);
}
return R.ok();
}
想要使用BindingResult就必须,在校验的对象后边紧跟上,否则会失效
BindingResult是将校验的结果封装到里边,以便我们可以统一封装校验后的信息。
postman测试结果: