質問編集履歴

5

タイトルの変更

2022/05/31 00:23

投稿

uratarosu
uratarosu

スコア49

test CHANGED
@@ -1 +1 @@
1
- コントローラークラスに@RequestParamアノテーションがついたinputバリデーションけた
1
+ JavaのSpringBootでのバリデーション処理がうまくい
test CHANGED
File without changes

4

Formクラスの追加、試したことの変更

2022/05/30 16:49

投稿

uratarosu
uratarosu

スコア49

test CHANGED
File without changes
test CHANGED
@@ -36,11 +36,21 @@
36
36
  }
37
37
  }
38
38
  ```
39
+
40
+ ```Form
41
+ @Data
42
+ public class Form {
43
+
44
+ @NotBlank(message = "名前を入力してください")
45
+ public String inputName;
46
+ }
47
+
48
+ ```
39
49
  ### 試したこと
40
50
 
41
-
51
+ Form.inputName = input;の位置を変えてみたり、Formの値の確認。
52
+ @NotBlankを別のアノテーション(@NotEmptyなど)に変更。※結果は変わらず。
42
53
 
43
54
  ### 補足情報(FW/ツールのバージョンなど)
44
55
 
45
- サービスやエンティティなども必要でしょうか。。
46
56
 

3

質問の仕方を変えました。

2022/05/30 16:45

投稿

uratarosu
uratarosu

スコア49

test CHANGED
File without changes
test CHANGED
@@ -2,50 +2,43 @@
2
2
 
3
3
  Java11,Spring Boot ,MyBatis ,MySQL,Thymeleaf
4
4
 
5
- コントローラークラスにある、GetMappingで
5
+ コントローラークラスにあるindexメソッドにて
6
- public String calc(Model model, @Validated @RequestParam("input") String input) となっているメソッドのinputで値を受け取ったときに空の場合、バリデーションをかけ
6
+ htmlのinputから受け取った値をバリデーションをかけて分岐する処理を書ています。
7
7
 
8
8
 
9
9
  ### 実現したいこと
10
10
 
11
+ inputの値が空白またはNullの時、エラー処理へ、正常な時な正常処理を行いたい。
11
- 日付るinputがindex.htmlあります
12
+ Formの値Nullになのでinputで受け取った値をFormに格納したい
12
- inputが空の時のバリデーション(多分@Blank)をかけてindex.htmlエラーメッセージを出したいです。
13
+
13
14
 
14
15
  ### 発生している問題・エラーメッセージ
15
16
 
16
17
  ```
17
- 現在、空inputを送信すると500エラーが表示され
18
+ Form Form値がNullになり、バリデーションによって全てエラーとして返されてしまう※①System.out.println(Form)のFormの値がNull。
19
+
18
- (Text '' could not be parsed at index 0)
20
+ 下記コントローラーのエラーの中にある※②のFormの値はinputの値が入ってきている。
19
21
  ```
20
22
 
21
23
  ### 該当のソースコード
22
24
 
23
25
  ```コントローラー
24
- @GetMapping("/calc")
25
- public String calc(Model model, @Validated @RequestParam("input") String input) {
26
+ public String index(@RequestParam("input") String input, @Validated Form Form,BindingResult result ,Model model) {
26
- model.addAttribute("selectedDate", input);
27
+ ※①System.out.println(Form);
27
28
 
28
- <略>
29
+ Form.inputName = input;
29
30
 
30
- return "index";
31
+ if (result.hasErrors()) {
31
- }```
32
-
33
- ```index
34
- <form th:action="@{/index}" method="GET">
35
- <input type="date" id="input" name="input" />
36
- <input type="submit" value="送信" />
37
- <span th:text="${message}">エラーメッセージ</span>
38
- </form>
32
+ //エラーの場合の処理
39
-
40
- <div>
41
- <p>入力した値:</p>
33
+    ※②System.out.println(Form);
42
- <p th:text="${input}">2022/08/01</p>
34
+ } else {
43
- </div>
35
+    //正常時の処理
36
+ }
37
+ }
44
38
  ```
45
39
  ### 試したこと
46
40
 
47
- ・コントローラークラスにisEmptyで空の時を分岐する(@validateを使ってないからだめ)
41
+
48
- ・コントローラーの@Validatedの後に@NotBlankを直接記入(バリデーションはかかるが500エラーにいく)
49
42
 
50
43
  ### 補足情報(FW/ツールのバージョンなど)
51
44
 

2

エラーメッセージの追記

2022/05/22 06:44

投稿

uratarosu
uratarosu

スコア49

test CHANGED
File without changes
test CHANGED
@@ -15,6 +15,7 @@
15
15
 
16
16
  ```
17
17
  現在、空のinputを送信すると500エラーが表示される。
18
+ (Text '' could not be parsed at index 0)
18
19
  ```
19
20
 
20
21
  ### 該当のソースコード

1

タイトルの変更

2022/05/22 06:36

投稿

uratarosu
uratarosu

スコア49

test CHANGED
@@ -1 +1 @@
1
- コントローラークラスに@RequestParamのアノテーションがついたメソッドにバリデーションをかけたい
1
+ コントローラークラスに@RequestParamのアノテーションがついたinputにバリデーションをかけたい
test CHANGED
@@ -2,7 +2,8 @@
2
2
 
3
3
  Java11,Spring Boot ,MyBatis ,MySQL,Thymeleaf
4
4
 
5
- コントローラークラスに@RequestParamのアノテーションがついたメソッドにバリデーションをかけたい
5
+ コントローラークラスにある、GetMappingで
6
+ public String calc(Model model, @Validated @RequestParam("input") String input) となっているメソッドのinputで値を受け取ったときに空の場合、バリデーションをかけたい
6
7
 
7
8
 
8
9
  ### 実現したいこと