回答編集履歴

1

ControllerとThymeleafテンプレートの実装例を追記。

2020/07/29 10:26

投稿

A-pZ
A-pZ

スコア12011

test CHANGED
@@ -1 +1,101 @@
1
1
  [Thymeleafでセレクトボックスを使う](https://qiita.com/alpha_pz/items/e5d1872fbb8f2b3d3f3d) が参考になるでしょうか。
2
+
3
+
4
+
5
+ 例えば、月を入力させたいのであれば、
6
+
7
+
8
+
9
+ Controllerの実装:
10
+
11
+
12
+
13
+ ```java
14
+
15
+ import java.util.Arrays;
16
+
17
+ import java.util.List;
18
+
19
+
20
+
21
+ import org.springframework.stereotype.Controller;
22
+
23
+ import org.springframework.web.bind.annotation.GetMapping;
24
+
25
+ import org.springframework.web.bind.annotation.RequestMapping;
26
+
27
+ import org.springframework.web.servlet.ModelAndView;
28
+
29
+
30
+
31
+ @Controller
32
+
33
+ @RequestMapping("wheel")
34
+
35
+ public class SampleController {
36
+
37
+ @GetMapping("")
38
+
39
+ public ModelAndView display(ModelAndView mnv) {
40
+
41
+
42
+
43
+ List<Integer> months = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12);
44
+
45
+ mnv.addObject("targetMonth", 7);
46
+
47
+ mnv.addObject("months", months);
48
+
49
+ mnv.setViewName("wheel");
50
+
51
+ return mnv;
52
+
53
+ }
54
+
55
+
56
+
57
+ }
58
+
59
+ ```
60
+
61
+
62
+
63
+ ここから表示する wheel.html にて、Controllerで定義した years の内容を繰り返し表示する方法は、
64
+
65
+ ※ targetMonth は 初期表示させる月の値
66
+
67
+
68
+
69
+ ```html
70
+
71
+ <!DOCTYPE html>
72
+
73
+ <html xmlns:th="http://www.thymeleaf.org">
74
+
75
+ <head>
76
+
77
+ <meta charset="UTF-8">
78
+
79
+ <title>Insert title here</title>
80
+
81
+ </head>
82
+
83
+ <body>
84
+
85
+ <select name="month">
86
+
87
+ <option th:each="month : ${months}"
88
+
89
+ th:value="${month}"
90
+
91
+ th:selected="${month == targetMonth}"
92
+
93
+ th:text="${month}"></option>
94
+
95
+ </select>
96
+
97
+ </body>
98
+
99
+ </html>
100
+
101
+ ```