- 使用如@NotBlank等注解
@Data
public class UserLoginReqVO {
@NotBlank(message = "手机号不能为空")
private String phone;
@NotBlank(message = "密码不能为空")
private String password;
}
- 在controller层方法的请求参数前加上@Validated注解。
@PostMapping("/login")
@ApiOperation("登录")
public BaseResult login(@RequestBody @Validated UserLoginReqVO reqVO, HttpServletResponse response) {
- 写异常处理类
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(MethodArgumentNotValidException.class)
@ResponseBody
public BaseResult resolveMethodArgumentNotValidException(MethodArgumentNotValidException ex){
BaseResult baseResult = new BaseResult();
baseResult.setCode(ResponseStatus.BUSINESS_EXCEPTION.code());
List<ObjectError> objectErrors = ex.getBindingResult().getAllErrors();
if(!CollectionUtils.isEmpty(objectErrors)) {
StringBuilder msgBuilder = new StringBuilder();
for (ObjectError objectError : objectErrors) {
msgBuilder.append(objectError.getDefaultMessage()).append(",");
}
String errorMessage = msgBuilder.toString();
if (errorMessage.length() > 1) {
errorMessage = errorMessage.substring(0, errorMessage.length() - 1);
}
baseResult.setMsg(errorMessage);
return baseResult;
}
baseResult.setMsg(ex.getMessage());
return baseResult;
}
}