直接上代码
@ApiModelProperty(value = "证件号码")
@NotBlank(message = "证件号码不能为空")
private String idCode;
比如想让参数idCode不合法的情况下,返回自定义的message,返回证件号码不能为空。需要定义一个全局异常处理类
@Slf4j
@RestControllerAdvice
public class GlobalExceptionHandler {
//当参数不和法的时候就会抛出这个异常,就会进入此方法中
@ExceptionHandler(MethodArgumentNotValidException.class)
public Response bindErrorHandler(HttpServletRequest req, MethodArgumentNotValidException e) {
List<FieldError> fieldErrorList = e.getBindingResult().getFieldErrors();
return makeBindErrors(fieldErrorList, e);
}
private Response makeBindErrors(List<FieldError> fieldErrorList, Exception exception) {
if(CollectionUtils.isEmpty(fieldErrorList)) {
return ResponseUtil.makeSuccess(exception);
}
String errorMessage = "";
Object data = null;
int errorCode = 0;
for(FieldError fieldError : fieldErrorList) {
if(fieldError != null) {
//fieldError.getDefaultMessage() 这个就是你自己定义的message
errorMessage = fieldError.getDefaultMessage();
data = fieldError.getRejectedValue();
if(fieldError.getCode().matches("^[-\\\\+]?[\\\\d]*$")) {
errorCode = Integer.parseInt(fieldError.getCode());
}else {
errorCode = 1;
}
break;
}
}
return ResponseUtil.makeResponse(errorCode, errorMessage, data);
}
}