質問編集履歴

5

HTML修正

2020/02/20 05:25

投稿

chocolate_pie
chocolate_pie

スコア26

test CHANGED
File without changes
test CHANGED
@@ -410,11 +410,9 @@
410
410
 
411
411
  <!DOCTYPE html>
412
412
 
413
- <html xmlns:th="http://www.thymeleaf.org"
413
+ <html>
414
-
415
- xmlns:sec="http://www.thymeleaf.org/extras/spring-security">
414
+
416
-
417
- <head th:replace="layout :: layout('HOME',~{::link})">
415
+ <head>
418
416
 
419
417
  <meta charset="UTF-8">
420
418
 
@@ -424,37 +422,53 @@
424
422
 
425
423
  <body>
426
424
 
427
-
425
+ <form method="post"
428
-
426
+
429
- <form method="post" th:action="@{/weight_complete/}+${goalseqs[0].userid.id}">
427
+ th:action="@{/weight_complete/}+${goalseqs[0].userid.id}"
428
+
430
-
429
+ th:object="${meisaiForm}">
430
+
431
- <table>
431
+ <table>
432
-
432
+
433
- <tr>
433
+ <tr>
434
-
434
+
435
- <th>目標番号</th>
435
+ <th>目標番号</th>
436
-
436
+
437
- <th>期中ウエイト</th>
437
+ <th>期中ウエイト</th>
438
-
438
+
439
- <th>期末ウエイト</th>
439
+ <th>期末ウエイト</th>
440
-
440
+
441
- <th></th>
441
+ <th></th>
442
-
442
+
443
- </tr>
443
+ </tr>
444
-
444
+
445
- <tr th:each="goalseq,st: ${goalseqs}">
445
+ <tr th:each="goalseq,st: ${goalseqs}">
446
-
446
+
447
- <td><input type="text" th:value="${goalseq.goalid}"></td>
447
+ <td><p th:text="${goalseq.goalid}"></p></td>
448
+
448
-
449
+ <td><input type=number name="meisaiList[1].goalWeight"
450
+
449
- <td><input type=number name="meisaiList[1].goalWeight" th:name="'MeisaiList[' +${st.index} +'].[1].goalWeight'" th:value="${goalseq.meisaiList[1].goalWeight}"></td>
451
+ th:name="'MeisaiList[' +${st.index} +'].[1].goalWeight'"
452
+
450
-
453
+ th:value="${goalseq.meisaiList[1].goalWeight}"></td>
454
+
455
+ <td><input type=number name="meisaiList[2].goalWeight"
456
+
451
- <td><input type=number name="meisaiList[2].goalWeight" th:name="'MeisaiList[' +${st.index}+ '].[2].goalWeight'" th:value="${goalseq.meisaiList[2].goalWeight}" ></td>
457
+ th:name="'MeisaiList[' +${st.index}+ '].[2].goalWeight'"
458
+
452
-
459
+ th:value="${goalseq.meisaiList[2].goalWeight}"></td>
460
+
453
- </tr>
461
+ </tr>
454
-
462
+
455
- </table>
463
+ </table>
464
+
456
-
465
+ <button type=submit>送信</button>
466
+
457
-
467
+ </form>
468
+
469
+ </body>
470
+
471
+ </html>
458
472
 
459
473
  ```
460
474
 

4

検証更新

2020/02/20 05:25

投稿

chocolate_pie
chocolate_pie

スコア26

test CHANGED
@@ -1 +1 @@
1
- Spring Boot+Thymeleaf 画面から入力されたリストの情報をフォームで受け取りたい
1
+ Spring Boot+Thymeleaf 画面から入力された二次元配列の情報をフォームで受け取りたい
test CHANGED
@@ -4,17 +4,17 @@
4
4
 
5
5
  Spring Boot+Thymeleafで画面から入力されたリストの情報をフォームで受け取りたいです。
6
6
 
7
- 正確にはリストの中にあるリストの情報を受け取りたいです。
7
+ 正確にはリストの中にあるリスト(二次元配列)の情報を受け取りたいです。
8
-
9
-
10
-
8
+
9
+
10
+
11
- [Springにおいて画面のリスト状になっている情報をコントローラーで取得したい](https://teratail.com/questions/126627)を参照して、リストになっている情報をコントローラーで受け取る処理の実装を試みましたがうまく値が渡らず、form値がnullになってしまいます。
11
+ [Springにおいて画面のリスト状になっている情報をコントローラーで取得したい](https://teratail.com/questions/126627)を参照して、リストになっている情報をコントローラーで受け取る処理の実装を試みましたがうまく値が渡らず、formから受け取る値がnullになってしまいます。
12
12
 
13
13
  これは、リストの中にリストがない場合なので、リストの中にリストがある書き方に躓いてしまいました。
14
14
 
15
15
 
16
16
 
17
- 昨日質問した、[SpringBoot フォームで複数レコードの値を受け取れない](https://teratail.com/questions/241894)では、リストの0番目の情報がすべての番号に反映されて更新されるだけの処理でした。
17
+ 前回質問した、[SpringBoot フォームで複数レコードの値を受け取れない](https://teratail.com/questions/241894)では、リストの0番目の情報がすべての番号に反映されて更新されるだけの処理でした。
18
18
 
19
19
 
20
20
 
@@ -24,6 +24,12 @@
24
24
 
25
25
  今回リストで更新したいのは、期中・期末の目標ウエイト(goalWeight)のみです。
26
26
 
27
+ 目標番号のリストの中にウェイトのリストが入っていて、その値をformに送信します。
28
+
29
+
30
+
31
+ 表示自体はできるのですが、javaに値がどうしても渡りません。
32
+
27
33
  Thymeleafの書き方がおかしいのだと思います。
28
34
 
29
35
  ご教授お願いします。
@@ -440,9 +446,9 @@
440
446
 
441
447
  <td><input type="text" th:value="${goalseq.goalid}"></td>
442
448
 
443
- <td><input type=number name="goalseq.meisaiList[1].goalWeight" th:name="'goalseq.meisaiList[1].goalWeight[ + ${st.index} +]'" th:value="${goalseq.meisaiList[1].goalWeight}"></td>
449
+ <td><input type=number name="meisaiList[1].goalWeight" th:name="'MeisaiList[' +${st.index} +'].[1].goalWeight'" th:value="${goalseq.meisaiList[1].goalWeight}"></td>
444
-
450
+
445
- <td><input type=number name="goalseq.meisaiList[2].goalWeight" th:name="'goalseq.meisaiList[2].goalWeight[ + ${st.index} +]'" th:value="${goalseq.meisaiList[2].goalWeight}" ></td>
451
+ <td><input type=number name="meisaiList[2].goalWeight" th:name="'MeisaiList[' +${st.index}+ '].[2].goalWeight'" th:value="${goalseq.meisaiList[2].goalWeight}" ></td>
446
452
 
447
453
  </tr>
448
454
 
@@ -456,34 +462,30 @@
456
462
 
457
463
  ### 試したこと
458
464
 
459
- ```java
465
+ ・GoalSeqでeachを回すのではなく、Meisaiで回したらフォームに値が渡りました
460
-
466
+
461
- String weightRegist(@PathVariable Integer id,@Valid List<GoalSeqForm> goalseqform, Principal principal,BindingResult bindingResult) {
467
+ →この方法で解決しましたがこの解決方法は、[Springにおいて画面のリスト状になっている情報をコントローラーで取得したい](https://teratail.com/questions/126627)と同じになってしまうので質問を残してあります。
462
-
463
- ```
464
-
465
- ・コントローラPOSTメソッドの引数をリストにしてみました→失敗
466
468
 
467
469
 
468
470
 
469
471
  ### 補足情報(FW/ツールのバージョンなど)
470
472
 
471
- FormクラスのGoalSeqのレコード1つに対して、Meisaiのレコードは3つOneToManyで紐づいています
473
+ FormクラスのGoalSeqのレコード1つに対して、MeisaiのレコードはmeisaiListとして3つOneToManyで紐づいています
472
-
474
+
475
+
476
+
473
- 目標1つに対して、外部テーブルで期初、期中、期末のステータスを紐づけています
477
+ 目標1つに対して、外部テーブルで期初、期中、期末のステータスを紐づけています
478
+
474
-
479
+ 期初にあたるmeisaiListの0番目は更新する必要がないので、nameのところでは、
480
+
481
+ 期中を「meisaiList[1].goalWeight」
482
+
483
+ 期末を「meisaiList[2].goalWeight」
484
+
485
+ と表記しています。
486
+
487
+
488
+
489
+
490
+
475
- 初心者で至らない点があると思いますがよろしくお願いします。
491
+ 初心者で至らない点があると思いますがよろしくお願いします。
476
-
477
-
478
-
479
- 追記
480
-
481
- HTMLのinputタグ内のth:nameを下記のように変更したら中身はnullですがコントローラー側でリストで受け取れる段階まできました。
482
-
483
- ```HTML
484
-
485
- <td><input type=number name="meisaiList[1].goalWeight" th:name="'MeisaiList[' +${st.index} +'].[1].goalWeight'" th:value="${goalseq.meisaiList[1].goalWeight}"></td>
486
-
487
- <td><input type=number name="meisaiList[2].goalWeight" th:name="'MeisaiList[' +${st.index}+ '].[2].goalWeight'" th:value="${goalseq.meisaiList[2].goalWeight}" ></td>
488
-
489
- ```

3

補足追記

2020/02/20 01:17

投稿

chocolate_pie
chocolate_pie

スコア26

test CHANGED
File without changes
test CHANGED
@@ -473,3 +473,17 @@
473
473
  (目標1つに対して、外部テーブルで期初、期中、期末のステータスを紐づけています)
474
474
 
475
475
  ・初心者で至らない点があると思いますがよろしくお願いします。
476
+
477
+
478
+
479
+ 追記
480
+
481
+ HTMLのinputタグ内のth:nameを下記のように変更したら中身はnullですがコントローラー側でリストで受け取れる段階まできました。
482
+
483
+ ```HTML
484
+
485
+ <td><input type=number name="meisaiList[1].goalWeight" th:name="'MeisaiList[' +${st.index} +'].[1].goalWeight'" th:value="${goalseq.meisaiList[1].goalWeight}"></td>
486
+
487
+ <td><input type=number name="meisaiList[2].goalWeight" th:name="'MeisaiList[' +${st.index}+ '].[2].goalWeight'" th:value="${goalseq.meisaiList[2].goalWeight}" ></td>
488
+
489
+ ```

2

補足

2020/02/18 04:10

投稿

chocolate_pie
chocolate_pie

スコア26

test CHANGED
File without changes
test CHANGED
@@ -4,10 +4,14 @@
4
4
 
5
5
  Spring Boot+Thymeleafで画面から入力されたリストの情報をフォームで受け取りたいです。
6
6
 
7
+ 正確にはリストの中にあるリストの情報を受け取りたいです。
8
+
7
9
 
8
10
 
9
11
  [Springにおいて画面のリスト状になっている情報をコントローラーで取得したい](https://teratail.com/questions/126627)を参照して、リストになっている情報をコントローラーで受け取る処理の実装を試みましたがうまく値が渡らず、formの値がnullになってしまいます。
10
12
 
13
+ これは、リストの中にリストがない場合なので、リストの中にリストがある書き方に躓いてしまいました。
14
+
11
15
 
12
16
 
13
17
  昨日質問した、[SpringBoot フォームで複数レコードの値を受け取れない](https://teratail.com/questions/241894)では、リストの0番目の情報がすべての番号に反映されて更新されるだけの処理でした。
@@ -466,4 +470,6 @@
466
470
 
467
471
  ・FormクラスのGoalSeqのレコード1つに対して、Meisaiのレコードは3つOneToManyで紐づいています
468
472
 
473
+ (目標1つに対して、外部テーブルで期初、期中、期末のステータスを紐づけています)
474
+
469
475
  ・初心者で至らない点があると思いますがよろしくお願いします。

1

url修正

2020/02/18 03:31

投稿

chocolate_pie
chocolate_pie

スコア26

test CHANGED
@@ -1 +1 @@
1
- Spting Boot+Thymeleaf 画面から入力されたリストの情報をフォームで受け取りたい
1
+ Spring Boot+Thymeleaf 画面から入力されたリストの情報をフォームで受け取りたい
test CHANGED
@@ -2,11 +2,11 @@
2
2
 
3
3
  いつもお世話になっております。
4
4
 
5
- Spting Boot+Thymeleafで画面から入力されたリストの情報をフォームで受け取りたいです。
5
+ Spring Boot+Thymeleafで画面から入力されたリストの情報をフォームで受け取りたいです。
6
-
7
-
8
-
6
+
7
+
8
+
9
- [Springにおいて画面のリスト状になっている情報をコントローラーで取得したい](https://teratail.com/questions/input)を参照して、リストになっている情報をコントローラーで受け取る処理の実装を試みましたがうまく値が渡らず、formの値がnullになってしまいます。
9
+ [Springにおいて画面のリスト状になっている情報をコントローラーで取得したい](https://teratail.com/questions/126627)を参照して、リストになっている情報をコントローラーで受け取る処理の実装を試みましたがうまく値が渡らず、formの値がnullになってしまいます。
10
10
 
11
11
 
12
12