java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > @Validated+@RequestBody校验List

@Validated+@RequestBody校验List实践

作者:whynotxzh

这篇文章主要介绍了@Validated+@RequestBody校验List实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

问题背景

@Validated 可以检验单个对象,但是如果需要校验@RequestBody List类型的参数时该注解不生效,可以使用@Validated和@Valid配合使用即可达到校验集合的效果

处理方案

@NotEmpty(message = "等级id不能为空")

异常处理

/**
 * 校验list参数 使用@Validated 和 @Valid配合使用 该拦截器处理@Vaild异常
 * 我们注解中的message可以从violation中取出
 * @param ex
 * @return
 */
@ResponseStatus(HttpStatus.BAD_REQUEST)
@ExceptionHandler(ConstraintViolationException.class)
public ApiResult processException(ConstraintViolationException ex){
    log.warn("methodArgumentNotValidException.msg = {}", ex.getMessage());
    Set<ConstraintViolation<?>> violations = ex.getConstraintViolations();
    for (ConstraintViolation<?> violation : violations) {
        return ApiResult.retDefException(violation.getMessage());
    }
    return new ApiResult();
}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文