From a94a0589dd4370d119a16a2c30783b503939bfd3 Mon Sep 17 00:00:00 2001 From: 疯狂的狮子Li <15040126243@163.com> Date: 星期日, 28 十一月 2021 21:03:48 +0800 Subject: [PATCH] update [重磅更新] Validator 校验框架支持国际化 --- ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestI18nController.java | 42 +++++++++++++++++++++ ruoyi-framework/src/main/java/com/ruoyi/framework/config/ValidatorConfig.java | 26 +++++++++--- 2 files changed, 61 insertions(+), 7 deletions(-) diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestI18nController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestI18nController.java index c2ab031..40b031b 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestI18nController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestI18nController.java @@ -5,9 +5,15 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; +import lombok.Data; +import org.hibernate.validator.constraints.Range; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; /** @@ -15,6 +21,7 @@ * * @author Lion Li */ +@Validated @Api(value = "娴嬭瘯鍥介檯鍖栨帶鍒跺櫒", tags = {"娴嬭瘯鍥介檯鍖栫鐞�"}) @RestController @RequestMapping("/demo/i18n") @@ -31,4 +38,39 @@ public AjaxResult<Void> get(@ApiParam("鍥介檯鍖朿ode") String code) { return AjaxResult.success(MessageUtils.message(code)); } + + /** + * Validator 鏍¢獙鍥介檯鍖� + * 涓嶄紶鍊� 鍒嗗埆鏌ョ湅寮傚父杩斿洖 + * + * 娴嬭瘯浣跨敤 not.null + */ + @ApiOperation("Validator 鏍¢獙鍥介檯鍖�") + @GetMapping("/test1") + public AjaxResult<Void> test1(@NotBlank(message = "{not.null}") String str) { + return AjaxResult.success(str); + } + + /** + * Bean 鏍¢獙鍥介檯鍖� + * 涓嶄紶鍊� 鍒嗗埆鏌ョ湅寮傚父杩斿洖 + * + * 娴嬭瘯浣跨敤 not.null + */ + @ApiOperation("Bean 鏍¢獙鍥介檯鍖�") + @GetMapping("/test2") + public AjaxResult<TestI18nBo> test2(@Validated TestI18nBo bo) { + return AjaxResult.success(bo); + } + + @Data + public static class TestI18nBo { + + @NotBlank(message = "{not.null}") + private String name; + + @NotNull(message = "{not.null}") + @Range(min = 0, max = 100, message = "{length.not.valid}") + private Integer age; + } } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ValidatorConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ValidatorConfig.java index 258e855..0a2007c 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ValidatorConfig.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ValidatorConfig.java @@ -1,12 +1,14 @@ package com.ruoyi.framework.config; import org.hibernate.validator.HibernateValidator; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.MessageSource; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.validation.beanvalidation.LocalValidatorFactoryBean; -import javax.validation.Validation; import javax.validation.Validator; -import javax.validation.ValidatorFactory; +import java.util.Properties; /** * 鏍¢獙妗嗘灦閰嶇疆绫� @@ -16,16 +18,26 @@ @Configuration public class ValidatorConfig { + @Autowired + private MessageSource messageSource; + /** * 閰嶇疆鏍¢獙妗嗘灦 蹇�熻繑鍥炴ā寮� */ @Bean public Validator validator() { - ValidatorFactory validatorFactory = Validation.byProvider(HibernateValidator.class) - .configure() - .failFast(true) - .buildValidatorFactory(); - return validatorFactory.getValidator(); + LocalValidatorFactoryBean factoryBean = new LocalValidatorFactoryBean(); + // 鍥介檯鍖� + factoryBean.setValidationMessageSource(messageSource); + // 璁剧疆浣跨敤 HibernateValidator 鏍¢獙鍣� + factoryBean.setProviderClass(HibernateValidator.class); + Properties properties = new Properties(); + // 璁剧疆 蹇�熷紓甯歌繑鍥� + properties.setProperty("hibernate.validator.fail_fast", "true"); + factoryBean.setValidationProperties(properties); + // 鍔犺浇閰嶇疆 + factoryBean.afterPropertiesSet(); + return factoryBean.getValidator(); } } -- Gitblit v1.9.3