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