@PostMapping("........")
public ResponseEntity method(@Valid @RequestBody DTO dto, BindingResult bindingResult) {
try {
//入参检查
ResponseUtil.checkFieldError(bindingResult);
//service调用
return ResponseUtil.buildResp(ResponseConstants.SUCCESS_CODE, ResponseConstants.SUCCESS_MSG, null);
} catch (Exception e) {
log.error(".... 接口异常", e);
return ResponseUtil.buildResp(ResponseConstants.SYSTEM_ERROR_CODE, e.getMessage(), null);
}
}
//DTO 实体类字段加上校验注解
public class DTO {
@NotEmpty(message = "名称不能为空")
private String name;
}
public static void checkFieldError(BindingResult bindingResult){
if(bindingResult.hasFieldErrors()){
//提取message,以便返回给前端
String errorMessage = bindingResult.getFieldErrors().stream()
.map(FieldError::getDefaultMessage)
.collect(Collectors.joining(";"));
throw new RuntimeException(errorMessage);
}
}
//当出现字段不通过时,抛出异常,被Controller catch或者全局异常处理