From f9a5fb74fbee478e569477c0de8f8880cc4e637b Mon Sep 17 00:00:00 2001 From: Doghole Date: Mon, 12 May 2025 17:56:32 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=B9=E6=9C=AA=E5=8C=85=E5=90=AB=20Validato?= =?UTF-8?q?r=20=E7=9A=84=20IConfig=20=E5=AE=9E=E7=8E=B0=E7=B1=BB=E7=9A=84?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../emoney/controller/ConfigControllerV1.java | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/main/java/quant/rich/emoney/controller/ConfigControllerV1.java b/src/main/java/quant/rich/emoney/controller/ConfigControllerV1.java index f6ff699..f50a147 100644 --- a/src/main/java/quant/rich/emoney/controller/ConfigControllerV1.java +++ b/src/main/java/quant/rich/emoney/controller/ConfigControllerV1.java @@ -21,6 +21,8 @@ import org.springframework.validation.Errors; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; +import jakarta.validation.UnexpectedTypeException; +import lombok.extern.slf4j.Slf4j; import quant.rich.emoney.controller.common.BaseController; import quant.rich.emoney.exception.PageNotFoundException; import quant.rich.emoney.interfaces.ConfigInfo; @@ -30,6 +32,7 @@ import quant.rich.emoney.service.ConfigService; @Controller @RequestMapping("/admin/v1/config") +@Slf4j public class ConfigControllerV1 extends BaseController { @Autowired @@ -83,11 +86,17 @@ public class ConfigControllerV1 extends BaseController { MethodParameter methodParameter = new MethodParameter(method, 1); // 执行校验 - BindingResult bindingResult = new BeanPropertyBindingResult(newConfig, clazz.getSimpleName()); - validator.validate(newConfig, bindingResult); + try { + BindingResult bindingResult = new BeanPropertyBindingResult(newConfig, clazz.getSimpleName()); + validator.validate(newConfig, bindingResult); - if (bindingResult.hasErrors()) { - throw new MethodArgumentNotValidException(methodParameter, bindingResult); + if (bindingResult.hasErrors()) { + throw new MethodArgumentNotValidException(methodParameter, bindingResult); + } + } + catch (UnexpectedTypeException e) { + // 对指定类型未找到 validator,忽略之 + log.debug("Cannot find a validator for {}", clazz.getName()); } T oldConfig = configService.getConfig(clazz);