質問編集履歴

1

説明分の編集

2019/11/06 16:06

投稿

icezoom
icezoom

スコア36

test CHANGED
File without changes
test CHANGED
@@ -3,273 +3,3 @@
3
3
  その中で、セレクトボックス(プルダウン)で選択できる値をデータベースに保存されている値から選ぶようにしたいのです。
4
4
 
5
5
  お聞きしたいこととしましては、上手くデータを取得できず何も選択できない状態となっていますので、解決方法もしくはヒント等教えて頂けると嬉しいです。
6
-
7
-
8
-
9
- データベースには二つテーブルを作成しています。
10
-
11
-
12
-
13
- ```html
14
-
15
- <h3 class="card-header">電話帳編集</h3>
16
-
17
- <div class="card-body">
18
-
19
- <form th:action="@{/edit/save}" method="post" th:object="${telDataForm}">
20
-
21
- <div class="col form-group">
22
-
23
- <label>氏名</label>
24
-
25
- <input type="text" class="form-control" th:field="*{userName}" size="40" maxlength="30" placeholder="氏名">
26
-
27
- <span th:if="${#fields.hasErrors('*{userName}')}" th:errors="*{userName}">userName error</span>
28
-
29
- </div>
30
-
31
- <div class="col form-group">
32
-
33
- <label>電話番号</label>
34
-
35
- <input type="tel" class="form-control" th:field="*{telNo}" size="20" maxlength="13" placeholder="電話番号">
36
-
37
- <span th:if="${#fields.hasErrors('*{telNo}')}" th:errors="*{telNo}">telNo error</span>
38
-
39
- </div>
40
-
41
- <div class="col form-group">
42
-
43
- <label>メールアドレス</label>
44
-
45
- <input type="email" class="form-control" th:field="*{mailAddr}" size="20" maxlength="50" placeholder="メールアドレス">
46
-
47
- <span th:if="${#fields.hasErrors('*{mailAddr}')}" th:errors="*{mailAddr}">mailAddr error</span>
48
-
49
- </div>
50
-
51
- <div class="col form-group">
52
-
53
- <label>グループ選択</label><br>
54
-
55
- <select name="groupId" th:field="*{groupId}" >
56
-
57
- <option th:each="telData : ${telDataList}" th:value="${telData.groupId}" th:text="${telData.text}"></option>
58
-
59
- </select>
60
-
61
- </div>
62
-
63
- <input type="hidden" th:field="*{id}">
64
-
65
- <div class="col">
66
-
67
- <input type="submit" class="btn btn-primary" value="保存">
68
-
69
- </div>
70
-
71
- </form>
72
-
73
- </div>
74
-
75
- ```
76
-
77
-
78
-
79
- ```Java
80
-
81
- コード
82
-
83
- @Controller
84
-
85
- @RequestMapping("/edit")
86
-
87
- public class EditController {
88
-
89
-
90
-
91
- @Autowired //EditServiceのインスタンスをspringで自動的にセットしてもらう
92
-
93
- private EditService service;
94
-
95
-
96
-
97
- @RequestMapping(method = RequestMethod.GET) //GET でアクセスされたリクエストを処理する
98
-
99
- public String index(@ModelAttribute TelDataForm form, Model model) {
100
-
101
- if (form.getId() == null) {
102
-
103
- return "edit";
104
-
105
- }
106
-
107
- //serviceのTelDataからIDを取得して、modelにaddAttribute(データを渡す )している
108
-
109
- model.addAttribute("telDataForm", service.findTelData(form.getId()));
110
-
111
- return "edit";
112
-
113
- }
114
-
115
-
116
-
117
- //リクエスト URL に対して、どのメソッドが処理を実行するか定義するアノテーション
118
-
119
- @RequestMapping(value = "/save", method = RequestMethod.POST)
120
-
121
- public String save(@ModelAttribute @Valid TelDataForm form,BindingResult result,Model model) {
122
-
123
- //追加
124
-
125
- if (result.hasErrors()) {
126
-
127
- return "edit";
128
-
129
- }
130
-
131
-
132
-
133
- service.saveTelData(BeanUtil.createProperties(form, EditDto.class));
134
-
135
- return "redirect:/";
136
-
137
- }
138
-
139
-
140
-
141
-
142
-
143
- }
144
-
145
- ```
146
-
147
- ```Java
148
-
149
- @Service
150
-
151
- public class EditService {
152
-
153
-
154
-
155
- @Autowired
156
-
157
- private TelDataRepository telDataRepository;
158
-
159
-
160
-
161
- public TelData findTelData(Long id) {
162
-
163
- return telDataRepository.getOne(id);
164
-
165
- }
166
-
167
-
168
-
169
- public void saveTelData(EditDto dto) {
170
-
171
- telDataRepository.save(BeanUtil.createProperties(dto, TelData.class));
172
-
173
- }
174
-
175
-
176
-
177
-
178
-
179
- }
180
-
181
-
182
-
183
- ```
184
-
185
- ```Java
186
-
187
- @Data
188
-
189
- public class TelDataForm {
190
-
191
- //ID
192
-
193
- private Long id;
194
-
195
-
196
-
197
- // ユーザー名
198
-
199
- @NotEmpty(message="*氏名を入力してください。")
200
-
201
- @Size(min = 1, max = 10, message="*1文字以上10文字以下で入力してください。")
202
-
203
- private String userName;
204
-
205
-
206
-
207
- // 電話番号
208
-
209
- @NotEmpty(message="*電話番号を入力してください。")
210
-
211
- @Size(min =1, max = 13,message="*例:000-1111-2222")
212
-
213
- private String telNo;
214
-
215
-
216
-
217
- // メールアドレス
218
-
219
- @NotEmpty(message="*メールアドレスを入力してください。")
220
-
221
- @Size(max = 30,message="*30文字以下でお願いします。")
222
-
223
- @Email
224
-
225
- private String mailAddr;
226
-
227
-
228
-
229
- private Long groupId;
230
-
231
-
232
-
233
- // 一覧画面での行選択チェックボックスの値(削除用ID配列)
234
-
235
- private Long[] selectRecords;
236
-
237
- }
238
-
239
- ```
240
-
241
- ```Java
242
-
243
- @Data
244
-
245
- @Entity
246
-
247
- public class TelData {
248
-
249
-
250
-
251
- @Id
252
-
253
- @GeneratedValue //主キーのIDを採番する役割
254
-
255
- private Long id;
256
-
257
-
258
-
259
- private String userName;
260
-
261
-
262
-
263
- private String telNo;
264
-
265
-
266
-
267
- private String mailAddr;
268
-
269
-
270
-
271
- private Long groupId;
272
-
273
- }
274
-
275
- ```