@Data
@AllArgsConstructor
@NoArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class BCVo {
private static final long serialVersionUID = 1L;
@NotNull(message = "pageSize不能空")
@ApiModelProperty(value = "每页条数", required = true)
@Max(value=200,message = "pageSize最大值不能大于200")
private int pageSize;
@NotNull(message = "pageNum不能空")
@ApiModelProperty(value = "页码", required = true)
private int pageNum;
@NotNull(message = "开始时间不能空")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "开始时间", required = true)
private Date beginTime;
@NotNull(message = "结束时间不能空")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "结束时间", required = true)
private Date endTime;
}
@ExceptionHandler({MethodArgumentNotValidException.class, BindException.class})
@ResponseStatus(HttpStatus.BAD_REQUEST)
public Result<String> handleBodyValidException(MethodArgumentNotValidException exception)
{
List<FieldError> fieldErrors = exception.getBindingResult().getFieldErrors();
log.error("参数绑定异常,ex = {}", fieldErrors.get(0).getDefaultMessage());
return Result.returnFail(fieldErrors.get(0).getDefaultMessage());
}
定义全局异常处理,才能返回参数校验信息
{
"respCode": "9999",
"respDesc": "失败",
"respData": "结束时间不能空"
}
本文档详细介绍了如何在Java API中实现参数校验,并通过全局异常处理返回有意义的错误信息。重点展示了如何使用`@NotNull`, `@Max`注解确保输入有效性,以及如何处理`MethodArgumentNotValidException`和`BindException`。
395

被折叠的 条评论
为什么被折叠?



