diff --git a/pom.xml b/pom.xml index cd8df1d..f43e3f3 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ vip.jcfd zkh-framework - 1.5.6 + 1.5.7 pom ZKH Framework A Java framework for ZKH applications diff --git a/zkh-common/pom.xml b/zkh-common/pom.xml index 3d78449..e2695bf 100644 --- a/zkh-common/pom.xml +++ b/zkh-common/pom.xml @@ -6,7 +6,7 @@ vip.jcfd zkh-framework - 1.5.6 + 1.5.7 zkh-common diff --git a/zkh-data/pom.xml b/zkh-data/pom.xml index 78cc252..8dd4ef3 100644 --- a/zkh-data/pom.xml +++ b/zkh-data/pom.xml @@ -6,7 +6,7 @@ vip.jcfd zkh-framework - 1.5.6 + 1.5.7 zkh-data diff --git a/zkh-file/pom.xml b/zkh-file/pom.xml index 67ee0b8..764ba44 100644 --- a/zkh-file/pom.xml +++ b/zkh-file/pom.xml @@ -6,7 +6,7 @@ vip.jcfd zkh-framework - 1.5.6 + 1.5.7 zkh-file diff --git a/zkh-log/pom.xml b/zkh-log/pom.xml index 2c027e3..ae15e10 100644 --- a/zkh-log/pom.xml +++ b/zkh-log/pom.xml @@ -6,7 +6,7 @@ vip.jcfd zkh-framework - 1.5.6 + 1.5.7 zkh-log diff --git a/zkh-web/pom.xml b/zkh-web/pom.xml index 30f4d19..162117f 100644 --- a/zkh-web/pom.xml +++ b/zkh-web/pom.xml @@ -7,7 +7,7 @@ vip.jcfd zkh-framework - 1.5.6 + 1.5.7 zkh-web diff --git a/zkh-web/src/main/java/vip/jcfd/web/config/GlobalExceptionHandler.java b/zkh-web/src/main/java/vip/jcfd/web/config/GlobalExceptionHandler.java index b969493..957d992 100644 --- a/zkh-web/src/main/java/vip/jcfd/web/config/GlobalExceptionHandler.java +++ b/zkh-web/src/main/java/vip/jcfd/web/config/GlobalExceptionHandler.java @@ -1,11 +1,16 @@ package vip.jcfd.web.config; +import jakarta.validation.ConstraintViolationException; import jakarta.validation.ValidationException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; import org.springframework.validation.BindException; +import org.springframework.validation.BindingResult; import org.springframework.validation.FieldError; +import org.springframework.web.bind.MethodArgumentNotValidException; import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.ResponseStatus; import org.springframework.web.bind.annotation.RestControllerAdvice; import org.springframework.web.servlet.resource.NoResourceFoundException; import vip.jcfd.common.core.BizException; @@ -54,4 +59,38 @@ public class GlobalExceptionHandler { log.error("接口入参校验失败", e); return R.error(e.getMessage()); } + + /** + * 处理 @RequestBody + @Valid 校验失败 + */ + @ExceptionHandler(MethodArgumentNotValidException.class) + @ResponseStatus(HttpStatus.BAD_REQUEST) + public R handleMethodArgumentNotValid(MethodArgumentNotValidException ex) { + log.error("接口入参校验失败", ex); + BindingResult bindingResult = ex.getBindingResult(); + + String msg = bindingResult.getFieldErrors() + .stream() + .map(err -> err.getField() + ": " + err.getDefaultMessage()) + .findFirst() + .orElse("参数错误"); + + return R.error(msg); + } + + /** + * 处理 @RequestParam / @PathVariable 校验失败 + */ + @ExceptionHandler(ConstraintViolationException.class) + @ResponseStatus(HttpStatus.BAD_REQUEST) + public R handleConstraintViolation(ConstraintViolationException ex) { + log.error("接口入参校验失败", ex); + String msg = ex.getConstraintViolations() + .stream() + .map(v -> v.getPropertyPath() + ": " + v.getMessage()) + .findFirst() + .orElse("参数错误"); + + return R.error(msg); + } }