Skip to content

Commit 53f1c3e

Browse files
committed
[fit] 修改校验处理默认使用的插值器
1 parent 8a97b05 commit 53f1c3e

File tree

8 files changed

+47
-13
lines changed

8 files changed

+47
-13
lines changed

framework/fit/java/fit-builtin/plugins/fit-validation-hibernate-jakarta/src/main/java/modelengine/fitframework/validation/ValidationHandler.java

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
import jakarta.validation.ConstraintViolation;
1010
import jakarta.validation.ConstraintViolationException;
11+
import jakarta.validation.MessageInterpolator;
1112
import jakarta.validation.Validation;
1213
import jakarta.validation.Validator;
1314
import jakarta.validation.ValidatorFactory;
@@ -43,10 +44,10 @@
4344
public class ValidationHandler implements AutoCloseable {
4445
private final ValidatorFactory validatorFactory;
4546
private final Validator validator;
46-
private final LocaleMessageInterpolator messageInterpolator;
47+
private MessageInterpolator messageInterpolator;
4748

4849
public ValidationHandler() {
49-
this.messageInterpolator = new LocaleMessageInterpolator();
50+
this.messageInterpolator = new LocaleContextMessageInterpolator();
5051
this.validatorFactory = Validation.byProvider(HibernateValidator.class)
5152
.configure()
5253
.messageInterpolator(this.messageInterpolator)
@@ -58,10 +59,21 @@ public ValidationHandler() {
5859
/**
5960
* 设置校验信息语言。
6061
*
61-
* @param locale 校验语言 {@link Locale}。
62+
* @param locale 表示校验语言的 {@link Locale}。
6263
*/
6364
public void setLocale(Locale locale) {
64-
this.messageInterpolator.setLocale(locale);
65+
if (this.messageInterpolator instanceof LocaleMessageInterpolator) {
66+
((LocaleMessageInterpolator) this.messageInterpolator).setLocale(locale);
67+
}
68+
}
69+
70+
/**
71+
* 设置校验信息消息插值器。
72+
*
73+
* @param messageInterpolator 表示校验信息消息插值器的 {@link MessageInterpolator}。
74+
*/
75+
public void setMessageInterpolator(MessageInterpolator messageInterpolator) {
76+
this.messageInterpolator = messageInterpolator;
6577
}
6678

6779
/**

framework/fit/java/fit-builtin/plugins/fit-validation-hibernate-jakarta/src/test/java/modelengine/fitframework/validation/LocaleValidationControllerTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import modelengine.fitframework.test.domain.mvc.request.MockMvcRequestBuilders;
1616
import modelengine.fitframework.test.domain.mvc.request.MockRequestBuilder;
1717
import modelengine.fitframework.validation.data.Company;
18+
import modelengine.fitframework.validation.data.LocaleValidationController;
1819

1920
import org.junit.jupiter.api.AfterEach;
2021
import org.junit.jupiter.api.DisplayName;

framework/fit/java/fit-builtin/plugins/fit-validation-hibernate-jakarta/src/test/java/modelengine/fitframework/validation/ValidationHandlerTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ public class ValidationHandlerTest {
5858

5959
@BeforeEach
6060
void setUp() {
61+
this.handler.setMessageInterpolator(new LocaleMessageInterpolator());
6162
this.handler.setLocale(Locale.CHINA);
6263
when(this.validated.value()).thenReturn(new Class[0]);
6364
when(this.fitRuntime.resolverOfAnnotations()).thenReturn(this.annotationMetadataResolver);

framework/fit/java/fit-builtin/plugins/fit-validation-hibernate-jakarta/src/test/java/modelengine/fitframework/validation/LocaleValidationController.java renamed to framework/fit/java/fit-builtin/plugins/fit-validation-hibernate-jakarta/src/test/java/modelengine/fitframework/validation/data/LocaleValidationController.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,15 @@
44
* Licensed under the MIT License. See License.txt in the project root for license information.
55
*--------------------------------------------------------------------------------------------*/
66

7-
package modelengine.fitframework.validation;
7+
package modelengine.fitframework.validation.data;
88

99
import modelengine.fit.http.annotation.PostMapping;
1010
import modelengine.fit.http.annotation.RequestBody;
1111
import modelengine.fit.http.annotation.RequestMapping;
1212
import modelengine.fitframework.annotation.Component;
13+
import modelengine.fitframework.validation.LocaleContextMessageInterpolator;
14+
import modelengine.fitframework.validation.Validated;
15+
import modelengine.fitframework.validation.ValidationHandler;
1316
import modelengine.fitframework.validation.data.Company;
1417

1518
import jakarta.validation.Valid;

framework/fit/java/fit-builtin/plugins/fit-validation-hibernate-javax/src/main/java/modelengine/fitframework/validation/ValidationHandler.java

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525

2626
import javax.validation.ConstraintViolation;
2727
import javax.validation.ConstraintViolationException;
28+
import javax.validation.MessageInterpolator;
2829
import javax.validation.Validation;
2930
import javax.validation.Validator;
3031
import javax.validation.ValidatorFactory;
@@ -44,10 +45,10 @@
4445
public class ValidationHandler implements AutoCloseable {
4546
private final ValidatorFactory validatorFactory;
4647
private final Validator validator;
47-
private final LocaleMessageInterpolator messageInterpolator;
48+
private MessageInterpolator messageInterpolator;
4849

4950
public ValidationHandler() {
50-
this.messageInterpolator = new LocaleMessageInterpolator();
51+
this.messageInterpolator = new LocaleContextMessageInterpolator();
5152
this.validatorFactory = Validation.byProvider(HibernateValidator.class)
5253
.configure()
5354
.messageInterpolator(this.messageInterpolator)
@@ -62,7 +63,18 @@ public ValidationHandler() {
6263
* @param locale 表示校验语言的 {@link Locale}。
6364
*/
6465
public void setLocale(Locale locale) {
65-
this.messageInterpolator.setLocale(locale);
66+
if (this.messageInterpolator instanceof LocaleMessageInterpolator) {
67+
((LocaleMessageInterpolator) this.messageInterpolator).setLocale(locale);
68+
}
69+
}
70+
71+
/**
72+
* 设置校验信息消息插值器。
73+
*
74+
* @param messageInterpolator 表示校验信息消息插值器的 {@link MessageInterpolator}。
75+
*/
76+
public void setMessageInterpolator(MessageInterpolator messageInterpolator) {
77+
this.messageInterpolator = messageInterpolator;
6678
}
6779

6880
/**

framework/fit/java/fit-builtin/plugins/fit-validation-hibernate-javax/src/test/java/modelengine/fitframework/validation/LocaleValidationControllerTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import modelengine.fitframework.test.domain.mvc.request.MockMvcRequestBuilders;
1616
import modelengine.fitframework.test.domain.mvc.request.MockRequestBuilder;
1717
import modelengine.fitframework.validation.data.Company;
18+
import modelengine.fitframework.validation.data.LocaleValidationController;
1819

1920
import org.junit.jupiter.api.AfterEach;
2021
import org.junit.jupiter.api.DisplayName;

framework/fit/java/fit-builtin/plugins/fit-validation-hibernate-javax/src/test/java/modelengine/fitframework/validation/ValidationHandlerTest.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -59,10 +59,11 @@ public class ValidationHandlerTest {
5959

6060
@BeforeEach
6161
void setUp() {
62-
handler.setLocale(Locale.CHINA);
63-
when(validated.value()).thenReturn(new Class[0]);
64-
when(fitRuntime.resolverOfAnnotations()).thenReturn(annotationMetadataResolver);
65-
when(beanContainer.runtime()).thenReturn(fitRuntime);
62+
this.handler.setMessageInterpolator(new LocaleMessageInterpolator());
63+
this.handler.setLocale(Locale.ENGLISH);
64+
when(this.validated.value()).thenReturn(new Class[0]);
65+
when(this.fitRuntime.resolverOfAnnotations()).thenReturn(annotationMetadataResolver);
66+
when(this.beanContainer.runtime()).thenReturn(fitRuntime);
6667
}
6768

6869
private ConstraintViolationException invokeHandleMethod(Method targetMethod, Object[] args) {

framework/fit/java/fit-builtin/plugins/fit-validation-hibernate-javax/src/test/java/modelengine/fitframework/validation/LocaleValidationController.java renamed to framework/fit/java/fit-builtin/plugins/fit-validation-hibernate-javax/src/test/java/modelengine/fitframework/validation/data/LocaleValidationController.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,14 @@
44
* Licensed under the MIT License. See License.txt in the project root for license information.
55
*--------------------------------------------------------------------------------------------*/
66

7-
package modelengine.fitframework.validation;
7+
package modelengine.fitframework.validation.data;
88

99
import javax.validation.Valid;
1010

1111
import modelengine.fitframework.annotation.Component;
12+
import modelengine.fitframework.validation.LocaleContextMessageInterpolator;
13+
import modelengine.fitframework.validation.Validated;
14+
import modelengine.fitframework.validation.ValidationHandler;
1215
import modelengine.fitframework.validation.data.Company;
1316
import modelengine.fit.http.annotation.PostMapping;
1417
import modelengine.fit.http.annotation.RequestBody;

0 commit comments

Comments
 (0)