teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

タイトル修正

2019/03/08 05:41

投稿

退会済みユーザー
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

説明を追記

2019/03/08 05:41

投稿

退会済みユーザー
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

設定ファイルのコードを記載

2019/03/08 05:39

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,7 +1,12 @@
1
1
  Kotlin の Bean Validation でフィールド名をエラーメッセージに埋め込むことができません。
2
2
 
3
+ `nameは必須項目です。` のようにエラーメッセージに対象のフィールド名を含めたいのですが、
3
- NameForm.kt
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.propeties
19
+ * messages.properties
15
20
 
16
21
  ```
17
22
  javax.validation.constraints.NotBlank.message={0}は必須項目です。
18
23
  ```
19
24
 
20
- 上記の設定で、`nameは必須項目です。`というエラーメッセージが返却されてほしいのですが、
21
- `{0}は必須項目です。` となってしまいます。
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
- Java の同様のプロジェクトを参考にしたのですが、Kotlin では他に必要な考慮があるのでしょうか?
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
+ ```