質問編集履歴
3
タイトル修正
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
Kotlin の Bean Validation でフィールド名を message に埋め込みたい
|
1
|
+
Spring Boot(Kotlin) の Bean Validation でフィールド名を message に埋め込みたい
|
body
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
Kotlin の Bean Validation でフィールド名をエラーメッセージに埋め込むことができません。
|
1
|
+
Spring Boot(Kotlin) の Bean Validation でフィールド名をエラーメッセージに埋め込むことができません。
|
2
2
|
|
3
3
|
`nameは必須項目です。` のようにエラーメッセージに対象のフィールド名を含めたいのですが、
|
4
4
|
`{0}は必須項目です。` とそのまま返却されてしまいます。
|
2
説明を追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -3,6 +3,8 @@
|
|
3
3
|
`nameは必須項目です。` のようにエラーメッセージに対象のフィールド名を含めたいのですが、
|
4
4
|
`{0}は必須項目です。` とそのまま返却されてしまいます。
|
5
5
|
|
6
|
+
リクエストはJSONで受け取ります。
|
7
|
+
|
6
8
|
Java の同様のプロジェクトを参考にしたのですが、Kotlin では他に必要な考慮があるのでしょうか?
|
7
9
|
|
8
10
|
* NameForm.kt
|
1
設定ファイルのコードを記載
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,7 +1,12 @@
|
|
1
1
|
Kotlin の Bean Validation でフィールド名をエラーメッセージに埋め込むことができません。
|
2
2
|
|
3
|
+
`nameは必須項目です。` のようにエラーメッセージに対象のフィールド名を含めたいのですが、
|
3
|
-
|
4
|
+
`{0}は必須項目です。` とそのまま返却されてしまいます。
|
4
5
|
|
6
|
+
Java の同様のプロジェクトを参考にしたのですが、Kotlin では他に必要な考慮があるのでしょうか?
|
7
|
+
|
8
|
+
* NameForm.kt
|
9
|
+
|
5
10
|
```Kotlin
|
6
11
|
import javax.validation.constraints.NotBlank
|
7
12
|
|
@@ -11,13 +16,36 @@
|
|
11
16
|
)
|
12
17
|
```
|
13
18
|
|
14
|
-
messages.
|
19
|
+
* messages.properties
|
15
20
|
|
16
21
|
```
|
17
22
|
javax.validation.constraints.NotBlank.message={0}は必須項目です。
|
18
23
|
```
|
19
24
|
|
20
|
-
上記の設定で、`nameは必須項目です。`というエラーメッセージが返却されてほしいのですが、
|
21
|
-
|
25
|
+
* AppConfig.kt
|
22
26
|
|
27
|
+
```Kotlin
|
28
|
+
import org.springframework.context.MessageSource
|
29
|
+
import org.springframework.context.annotation.Bean
|
30
|
+
import org.springframework.context.annotation.Configuration
|
31
|
+
import org.springframework.context.support.ReloadableResourceBundleMessageSource
|
32
|
+
import org.springframework.validation.beanvalidation.LocalValidatorFactoryBean
|
33
|
+
|
34
|
+
@Configuration
|
35
|
+
class AppConfig {
|
36
|
+
@Bean
|
37
|
+
fun messageSource(): MessageSource {
|
38
|
+
val messageSource = ReloadableResourceBundleMessageSource()
|
39
|
+
messageSource.setBasename("classpath:messages")
|
23
|
-
|
40
|
+
messageSource.setDefaultEncoding("UTF-8")
|
41
|
+
return messageSource
|
42
|
+
}
|
43
|
+
|
44
|
+
@Bean
|
45
|
+
fun getValidator(): LocalValidatorFactoryBean {
|
46
|
+
val bean = LocalValidatorFactoryBean()
|
47
|
+
bean.setValidationMessageSource(messageSource())
|
48
|
+
return bean
|
49
|
+
}
|
50
|
+
}
|
51
|
+
```
|