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

質問編集履歴

6

情報追加

2021/07/21 07:24

投稿

iiinnn
iiinnn

スコア8

title CHANGED
@@ -1,1 +1,1 @@
1
- SpringBootの登録機能、プライマリキー重複エラーメッセージ表示方法
1
+ SpringBootのエラーメッセージ表示方法
body CHANGED
@@ -1,92 +1,83 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
3
  現在SpringBootの学習に着手したのですが、初歩で転びました。
4
- localhost:8080/にアクセスするとHelloWorldが表示されるものを作成しております。
5
4
 
6
- まだ始めたばかりなのでうまく伝えられないかもしれませんが、
5
+ 始めたばかりなのでうまく伝えられないかもしれませんが、
7
- registIdをプライマリキーに登録画面を作成しています。
6
+ rIdをプライマリキーに登録画面を作成しています。
8
- 情報登録、プライマリキー違反でのエラー画面を表示、をしたいのですが
7
+ プライマリキー違反でのエラー画面を表示したいのですが
9
8
  localhost:8080/にアクセスしてもWhitelabelErrorPage400 となり、望んでいる画面になりません。。
10
9
 
11
-
12
- もしかしたら
13
- selectSQL09(@Param("registId") RegistForm registId)を
14
- selectSQL09(@Param("registId") String registId)に変えたらいけるのかなと思うのですが
15
- Controllerの登録のところでString registIdにするとエラーがでてしまうためできません。
16
-
17
10
  お力添えをどうぞよろしくお願い致します。
18
11
 
19
12
  ### エラーメッセージ
20
13
 
21
14
  ```
22
15
  There was an unexpected error (type=Bad Request, status=400).
23
- Required RegistForm parameter 'registId' is not present
16
+ Required RForm parameter 'rId' is not present
24
- org.springframework.web.bind.MissingServletRequestParameterException: Required RegistForm parameter 'registId' is not present
17
+ org.springframework.web.bind.MissingServletRequestParameterException: Required RForm parameter 'rId' is not present
25
18
  ```
26
19
 
27
20
  ### SQL
28
21
 
29
22
  ```ここに言語名を入力
30
23
  /** プライマリキー違反表示 **/
31
- @Select("SELECT regist_id FROM TBL_COMPANY WHERE regist_id=#{registId}")
24
+ @Select("SELECT rid FROM TBL_R WHERE rid=#{rId}")
32
- List<String> selectSQL09(@Param("registId") String registId);
25
+ List<String> selectSQL02(@Param("rId") String rId);
33
26
 
34
27
  /** 登録 **/
35
- @Insert("INSERT INTO TBL_COMPANY (regist_id,regist_name,regist_representative,regist_tel,regist_fax,regist_postalcode,regist_address1,regist_address2,regist_address3,regist_address4) VALUES (#{rId},#{rName},#{rRepre},#{rTel},#{rFax},#{rPostal},#{rA1},#{rA2},#{rA3},#{rA4})")
36
- String insertSQL03(@Param("rId") String rId, @Param("rName") String rName, @Param("rTel") String rTel, @Param("rFax") String rFax, @Param("rRepre") String rRepre, @Param("rPostal") String rPostal, @Param("rA1") String rA1, @Param("rA2") String rA2, @Param("rA3") String rA3, @Param("rA4") String rA4);
28
+ @Insert("INSERT INTO TBL_R (regist_id,regist_name,regist_tel,regist_postalcode,regist_address1, VALUES (#{rId},#{rName},#{rTel},#{rPostal},#{rA1},)")
29
+ String insertSQL01(@Param("rId") String rId, @Param("rName") String rName, @Param("rTel") String rTel, @Param("rPostal") String rPostal, @Param("rA1") String rA1;
37
30
 
38
31
  ```
39
32
 
40
33
  ### Controller.java
41
34
 
42
35
  ```ここに言語名を入力
43
- ////////////登録
44
- @PostMapping("/CIMS/viewRegistComplete1")
36
+ @PostMapping("/viewComplete")
45
37
 
46
- public String viewRegistComplete1(Model model, RegistForm registId) {
38
+ public String viewComplete(Model model, ReForm rId) {
47
39
 
48
40
  List<String> list = new ArrayList<String>();
49
41
 
50
- list = service.getCheckId(registId.getRegist_id());
42
+ list = service.getId(registId.get_id());
51
43
 
52
44
 
53
45
  if (list.size() > 0) {
54
46
 
55
47
  model.addAttribute("errMessage", "登録できません。");
56
48
 
57
- return "companyInformation/registErorr" ;
49
+ return "information/erorr" ;
58
50
  }
59
51
 
60
52
  String regist1 = new String();
61
-
62
- //ここまでできてる
53
+
63
- regist1 = service.setRegistList(registId);
54
+ result = service.setlist(rId);
64
55
 
65
- return "companyInformation/registComplete";
56
+ return "information/complete";
66
57
  }
67
58
  ```
68
59
 
69
- ### Srevice.java
60
+ ### Service.java
70
61
 
71
62
  ```ここに言語名を入力
72
63
  /**
73
- * 会員情報テーブルに新規企業情報の登録
64
+ * 情報テーブルに情報の登録
74
- * @return 企業情報登録
65
+ * @return 登録
75
66
  */
76
- public List<String> getCheckId(String registId) {
67
+ public List<String> getId(String rId) {
77
68
 
78
69
  List<String> result = new ArrayList<String>();
79
70
 
80
- result = sqlMapper.selectSQL09(registId);
71
+ result = sqlMapper.selectSQL09(rId);
81
72
 
82
73
  return result;
83
74
  }
84
75
 
85
- public String setRegistList(RegistForm registForm) {
76
+ public String setList(ReForm reForm) {
86
77
 
87
78
  String result = new String();
88
79
 
89
- result = sqlMapper.insertSQL03(
80
+ result = sqlMapper.insertSQL01(
90
81
 
91
82
  registForm.getRegist_id(),
92
83
  registForm.getRegist_name(),
@@ -117,103 +108,61 @@
117
108
  <body>
118
109
 
119
110
  <div style="text-align: center">
120
- <h2 style="text-align: center">情報登録</h2>
111
+ <h2 style="text-align: center">情報登録</h2>
121
- <hr style="height: 3; background =color: #0000FF" />
122
- <br> 登録する情報を入力してください。
123
112
 
124
-
125
- <form th:action="@{/CIMS/viewRegistComplete1}"
113
+ <form th:action="@{/viewComplete}"
126
- th:object="${registForm}" method="POST" >
114
+ th:object="${reForm}" method="POST" >
127
115
 
128
-
129
-
130
-
116
+
131
117
  <table style="margin: 0 auto">
132
118
 
133
119
  <tr>
134
120
  <td style="width: 60">ID</td>
135
- <td><input type=text size="30" name="regist_id" pattern="\d{4}" title="半角数字4桁でご入力ください。" placeholder="例 : 0001" required></input></td>
121
+ <td><input type=text size="30" name="re_id"></input></td>
136
122
 
137
123
  </tr>
138
124
 
139
125
  <tr>
140
- <td style="width: 60">企業名</td>
126
+ <td style="width: 60">名</td>
141
- <td><input type=text size="30" name="regist_name" placeholder="例 : 株式会社A" required></input></td>
127
+ <td><input type=text size="30" name="re_name"></input></td>
142
128
  </tr>
143
129
 
144
130
  <tr>
145
131
  <td style="width: 70">電話番号</td>
146
- <td><input type=tel size="30" name="regist_tel" pattern="\d{2,4}-\d{3,4}-\d{3,4}" title="半角数字11桁、ハイフンを付けてご入力ください。" placeholder="例 : 090-1234-5678"></input></td>
132
+ <td><input type=tel size="30" name="re_tel"></input></td>
147
133
  </tr>
148
-
149
- <tr>
150
- <td style="width: 70">FAX</td>
151
- <td><input type=tel size="30" name="regist_fax" pattern="\d{2,4}-\d{3,4}-\d{3,4}" title="半角数字11桁、ハイフンを付けてご入力ください。" placeholder="例 : 080-1234-5678"></input></td>
152
- </tr>
153
134
 
154
135
  <tr>
155
- <td style="width: 70">代表者</td>
156
- <td><input type=text size="30" name="regist_representative" pattern="[^\x20-\x7E]*" title="全角でご入力ください。" placeholder="例 : 山田太郎" required></input></td>
157
- </tr>
158
-
159
-
160
- <tr>
161
136
  <td style="width: 70">郵便番号</td>
162
- <td><input type=text size="30" name="regist_postalcode" pattern="\d{3}-\d{4}" title="3桁の数字、ハイフン、4桁の数字の順でご入力ください。" placeholder="例 : 123-4567"
137
+ <td><input type=text size="30" name="re_postalcode"></input></td>
163
- onKeyUp="AjaxZip3.zip2addr(this,'','regist_address1','regist_address1');"></input></td>
164
138
  </tr>
165
139
 
166
140
  <tr>
167
141
  <td style="width: 70">住所1</td>
168
- <td><input type=text size="30" name="regist_address1" placeholder="例 : 埼玉県さいたま市大宮区1-1-1"></input></td>
142
+ <td><input type=text size="30" name="re_address1"></input></td>
169
143
  </tr>
170
144
 
171
145
 
172
146
  <tr>
173
- <td style="width: 70">住所2</td>
174
- <td><input type=text size="30" name="regist_address2"></input></td>
175
- </tr>
176
-
177
- <tr>
178
- <td style="width: 70">住所3</td>
179
- <td><input type=text size="30" name="regist_address3"></input></td>
180
- </tr>
181
-
182
- <tr>
183
- <td style="width: 70">住所4</td>
184
- <td><input type=text size="30" name="regist_address4"></input></td>
185
- </tr>
186
-
187
-
188
-
189
- <tr>
190
147
 
191
148
  <td colspan=2 style="text-align: center">
192
149
  <input type="submit" value="登録"></td>
193
-
194
-
195
150
 
196
151
  </tr>
197
152
 
198
153
 
199
-
200
-
201
-
202
154
  </table>
203
155
 
204
156
  <br><br>
205
- <a th:href="@{/CIMS/viewCompanyInformationList}">企業情報一覧へ戻る</a>
157
+ <a th:href="@{/viewInformationList}">情報一覧へ戻る</a>
206
158
  </form>
207
-
208
-
209
-
210
159
  </div>
211
160
  </body>
212
161
  </html>
213
162
 
214
163
  ```
215
164
 
216
- ### registComplete.html
165
+ ### complete.html
217
166
 
218
167
  ```
219
168
  <!doctype html>
@@ -221,51 +170,37 @@
221
170
  <head>
222
171
  <meta charset="UTF-8">
223
172
 
224
- <title>登録完了画面</title>
173
+ <title>登録完了</title>
225
174
  </head>
226
175
  <body>
227
176
  <div style="text-align: center">
228
177
  <h2 style="text-align: center">登録完了</h2>
229
-
230
- <br>
231
- 企業情報の登録が完了しました。
232
- 企業情報一覧へ戻るを押してご確認ください。
233
178
 
179
+
180
+ <p><a th:href="@{/viewInformationList}">情報一覧へ戻る</a></p>
234
181
 
235
-
236
- <br><br><br><br><br><br><br>
237
- <p><a th:href="@{/CIMS/viewCompanyInformationList}">企業情報一覧へ戻る</a></p>
238
182
 
239
-
240
183
  </div>
241
184
  </body>
242
185
  </html>
243
186
 
244
187
  ```
245
- ### RegistForm.java
188
+ ### ReForm.java
246
189
 
247
190
  ```
248
- package jp.co.lain.companyInformation;
191
+ package jp.co.lain.information;
249
192
 
250
- import java.sql.Timestamp;
251
193
 
252
- import lombok.Data;
253
-
254
194
  @Data
255
- public class RegistForm {
195
+ public class ReForm {
256
196
 
257
197
 
258
- private String regist_id;
198
+ private String re_id;
259
- private String regist_name;
199
+ private String re_name;
260
- private String regist_tel;
200
+ private String re_tel;
261
- private String regist_fax;
262
- private String regist_representative;
263
- private String regist_postalcode;
201
+ private String re_postalcode;
264
- private String regist_address1;
202
+ private String re_address1;
265
- private String regist_address2;
203
+
266
- private String regist_address3;
267
- private String regist_address4;
268
- private Timestamp create_date;
269
204
  }
270
205
 
271
206
  ```

5

SQL,Controller,Sreviceの訂正 10:35現在

2021/07/21 07:24

投稿

iiinnn
iiinnn

スコア8

title CHANGED
File without changes
body CHANGED
@@ -29,60 +29,53 @@
29
29
  ```ここに言語名を入力
30
30
  /** プライマリキー違反表示 **/
31
31
  @Select("SELECT regist_id FROM TBL_COMPANY WHERE regist_id=#{registId}")
32
- List<TblCompany> selectSQL09(@Param("registId") RegistForm registId);
32
+ List<String> selectSQL09(@Param("registId") String registId);
33
33
 
34
34
  /** 登録 **/
35
- @Insert("INSERT INTO TBL_COMPANY (regist_id,regist_name,regist_representative,regist_tel,regist_fax,regist_postalcode,regist_address1,regist_address2,regist_address3,regist_address4) VALUES (#{rId},#{rName},#{rRepre},#{rTel},#{rFax},#{rPostal},#{rA1},#{rA2},#{rA3},#{rA4})")
36
- String insertSQL03(@Param("rId") String rId, @Param("rName") String rName, @Param("rTel") String rTel, @Param("rFax") String rFax, @Param("rRepre") String rRepre, @Param("rPostal") String rPostal, @Param("rA1") String rA1, @Param("rA2") String rA2, @Param("rA3") String rA3, @Param("rA4") String rA4);
35
+ @Insert("INSERT INTO TBL_COMPANY (regist_id,regist_name,regist_representative,regist_tel,regist_fax,regist_postalcode,regist_address1,regist_address2,regist_address3,regist_address4) VALUES (#{rId},#{rName},#{rRepre},#{rTel},#{rFax},#{rPostal},#{rA1},#{rA2},#{rA3},#{rA4})")
36
+ String insertSQL03(@Param("rId") String rId, @Param("rName") String rName, @Param("rTel") String rTel, @Param("rFax") String rFax, @Param("rRepre") String rRepre, @Param("rPostal") String rPostal, @Param("rA1") String rA1, @Param("rA2") String rA2, @Param("rA3") String rA3, @Param("rA4") String rA4);
37
37
 
38
38
  ```
39
39
 
40
40
  ### Controller.java
41
41
 
42
42
  ```ここに言語名を入力
43
+ ////////////登録
43
- @PostMapping("/viewRegistComplete1")
44
+ @PostMapping("/CIMS/viewRegistComplete1")
45
+
44
- public String viewRegistComplete1(Model model, @RequestParam("registId") RegistForm registId) {
46
+ public String viewRegistComplete1(Model model, RegistForm registId) {
45
47
 
46
- List<TblCompany> list = new ArrayList<TblCompany>();
48
+ List<String> list = new ArrayList<String>();
47
49
 
48
- list = service.getCheckId(registId);
50
+ list = service.getCheckId(registId.getRegist_id());
51
+
49
52
 
50
53
  if (list.size() > 0) {
51
54
 
52
- model.addAttribute("errMessage", "登録できません。");
55
+ model.addAttribute("errMessage", "登録できません。");
56
+
53
- return viewInsurt (model,list);
57
+ return "companyInformation/registErorr" ;
54
58
  }
55
-
59
+
56
60
  String regist1 = new String();
61
+
57
-
62
+ //ここまでできてる
58
63
  regist1 = service.setRegistList(registId);
59
-
64
+
60
65
  return "companyInformation/registComplete";
61
- }
66
+ }
62
67
  ```
63
68
 
64
69
  ### Srevice.java
65
70
 
66
71
  ```ここに言語名を入力
67
- /**
68
- * 情報管理テーブルからregistIDを取得
69
- */
70
- public String getRegistId(String registId) {
71
-
72
- String result = new String();
73
-
74
- result = sqlMapper.selectSQL08(registId);
75
-
76
- return result;
77
- }
78
-
79
72
  /**
80
- * 情報テーブルに新規情報登録
73
+ * 会員情報テーブルに新規企業情報登録
81
- * @return 登録
74
+ * @return 企業情報登録
82
75
  */
83
- public List<TblCompany> getCheckId(RegistForm registId) {
76
+ public List<String> getCheckId(String registId) {
84
77
 
85
- List<TblCompany> result = new ArrayList<TblCompany>();
78
+ List<String> result = new ArrayList<String>();
86
79
 
87
80
  result = sqlMapper.selectSQL09(registId);
88
81
 
@@ -92,7 +85,7 @@
92
85
  public String setRegistList(RegistForm registForm) {
93
86
 
94
87
  String result = new String();
95
-
88
+
96
89
  result = sqlMapper.insertSQL03(
97
90
 
98
91
  registForm.getRegist_id(),
@@ -108,6 +101,7 @@
108
101
 
109
102
  return result;
110
103
  }
104
+
111
105
  ```
112
106
 
113
107
  ### regist.html

4

情報追加

2021/07/20 01:34

投稿

iiinnn
iiinnn

スコア8

title CHANGED
File without changes
body CHANGED
@@ -37,7 +37,7 @@
37
37
 
38
38
  ```
39
39
 
40
- ### Controller
40
+ ### Controller.java
41
41
 
42
42
  ```ここに言語名を入力
43
43
  @PostMapping("/viewRegistComplete1")
@@ -61,7 +61,7 @@
61
61
  }
62
62
  ```
63
63
 
64
- ### Srevice
64
+ ### Srevice.java
65
65
 
66
66
  ```ここに言語名を入力
67
67
  /**
@@ -247,4 +247,31 @@
247
247
  </body>
248
248
  </html>
249
249
 
250
+ ```
251
+ ### RegistForm.java
252
+
253
+ ```
254
+ package jp.co.lain.companyInformation;
255
+
256
+ import java.sql.Timestamp;
257
+
258
+ import lombok.Data;
259
+
260
+ @Data
261
+ public class RegistForm {
262
+
263
+
264
+ private String regist_id;
265
+ private String regist_name;
266
+ private String regist_tel;
267
+ private String regist_fax;
268
+ private String regist_representative;
269
+ private String regist_postalcode;
270
+ private String regist_address1;
271
+ private String regist_address2;
272
+ private String regist_address3;
273
+ private String regist_address4;
274
+ private Timestamp create_date;
275
+ }
276
+
250
277
  ```

3

ページの追加

2021/07/20 00:44

投稿

iiinnn
iiinnn

スコア8

title CHANGED
File without changes
body CHANGED
@@ -108,4 +108,143 @@
108
108
 
109
109
  return result;
110
110
  }
111
+ ```
112
+
113
+ ### regist.html
114
+
115
+ ```
116
+ <!doctype html>
117
+ <html xmlns:th="http://www.thymeleaf.org">
118
+ <head>
119
+ <meta charset="UTF-8">
120
+ <title>情報登録画面</title>
121
+ <script src=“https://yubinbango.github..io/yubinbango/yubinbango.js” charset=“UTF-8”></script>
122
+ </head>
123
+ <body>
124
+
125
+ <div style="text-align: center">
126
+ <h2 style="text-align: center">情報登録</h2>
127
+ <hr style="height: 3; background =color: #0000FF" />
128
+ <br> 登録する情報を入力してください。
129
+
130
+
131
+ <form th:action="@{/CIMS/viewRegistComplete1}"
132
+ th:object="${registForm}" method="POST" >
133
+
134
+
135
+
136
+
137
+ <table style="margin: 0 auto">
138
+
139
+ <tr>
140
+ <td style="width: 60">ID</td>
141
+ <td><input type=text size="30" name="regist_id" pattern="\d{4}" title="半角数字4桁でご入力ください。" placeholder="例 : 0001" required></input></td>
142
+
143
+ </tr>
144
+
145
+ <tr>
146
+ <td style="width: 60">企業名</td>
147
+ <td><input type=text size="30" name="regist_name" placeholder="例 : 株式会社A" required></input></td>
148
+ </tr>
149
+
150
+ <tr>
151
+ <td style="width: 70">電話番号</td>
152
+ <td><input type=tel size="30" name="regist_tel" pattern="\d{2,4}-\d{3,4}-\d{3,4}" title="半角数字11桁、ハイフンを付けてご入力ください。" placeholder="例 : 090-1234-5678"></input></td>
153
+ </tr>
154
+
155
+ <tr>
156
+ <td style="width: 70">FAX</td>
157
+ <td><input type=tel size="30" name="regist_fax" pattern="\d{2,4}-\d{3,4}-\d{3,4}" title="半角数字11桁、ハイフンを付けてご入力ください。" placeholder="例 : 080-1234-5678"></input></td>
158
+ </tr>
159
+
160
+ <tr>
161
+ <td style="width: 70">代表者</td>
162
+ <td><input type=text size="30" name="regist_representative" pattern="[^\x20-\x7E]*" title="全角でご入力ください。" placeholder="例 : 山田太郎" required></input></td>
163
+ </tr>
164
+
165
+
166
+ <tr>
167
+ <td style="width: 70">郵便番号</td>
168
+ <td><input type=text size="30" name="regist_postalcode" pattern="\d{3}-\d{4}" title="3桁の数字、ハイフン、4桁の数字の順でご入力ください。" placeholder="例 : 123-4567"
169
+ onKeyUp="AjaxZip3.zip2addr(this,'','regist_address1','regist_address1');"></input></td>
170
+ </tr>
171
+
172
+ <tr>
173
+ <td style="width: 70">住所1</td>
174
+ <td><input type=text size="30" name="regist_address1" placeholder="例 : 埼玉県さいたま市大宮区1-1-1"></input></td>
175
+ </tr>
176
+
177
+
178
+ <tr>
179
+ <td style="width: 70">住所2</td>
180
+ <td><input type=text size="30" name="regist_address2"></input></td>
181
+ </tr>
182
+
183
+ <tr>
184
+ <td style="width: 70">住所3</td>
185
+ <td><input type=text size="30" name="regist_address3"></input></td>
186
+ </tr>
187
+
188
+ <tr>
189
+ <td style="width: 70">住所4</td>
190
+ <td><input type=text size="30" name="regist_address4"></input></td>
191
+ </tr>
192
+
193
+
194
+
195
+ <tr>
196
+
197
+ <td colspan=2 style="text-align: center">
198
+ <input type="submit" value="登録"></td>
199
+
200
+
201
+
202
+ </tr>
203
+
204
+
205
+
206
+
207
+
208
+ </table>
209
+
210
+ <br><br>
211
+ <a th:href="@{/CIMS/viewCompanyInformationList}">企業情報一覧へ戻る</a>
212
+ </form>
213
+
214
+
215
+
216
+ </div>
217
+ </body>
218
+ </html>
219
+
220
+ ```
221
+
222
+ ### registComplete.html
223
+
224
+ ```
225
+ <!doctype html>
226
+ <html xmlns:th="http://www.thymeleaf.org">
227
+ <head>
228
+ <meta charset="UTF-8">
229
+
230
+ <title>登録完了画面</title>
231
+ </head>
232
+ <body>
233
+ <div style="text-align: center">
234
+ <h2 style="text-align: center">登録完了</h2>
235
+
236
+ <br>
237
+ 企業情報の登録が完了しました。
238
+ 企業情報一覧へ戻るを押してご確認ください。
239
+
240
+
241
+
242
+ <br><br><br><br><br><br><br>
243
+ <p><a th:href="@{/CIMS/viewCompanyInformationList}">企業情報一覧へ戻る</a></p>
244
+
245
+
246
+ </div>
247
+ </body>
248
+ </html>
249
+
111
250
  ```

2

誤字修正

2021/07/19 05:32

投稿

iiinnn
iiinnn

スコア8

title CHANGED
File without changes
body CHANGED
@@ -61,7 +61,7 @@
61
61
  }
62
62
  ```
63
63
 
64
- ### Srevise
64
+ ### Srevice
65
65
 
66
66
  ```ここに言語名を入力
67
67
  /**

1

誤字

2021/07/19 02:45

投稿

iiinnn
iiinnn

スコア8

title CHANGED
File without changes
body CHANGED
@@ -68,13 +68,10 @@
68
68
  * 情報管理テーブルからregistIDを取得
69
69
  */
70
70
  public String getRegistId(String registId) {
71
- System.out.println("☆5:");
72
71
 
73
72
  String result = new String();
74
- System.out.println("☆6:");
75
73
 
76
74
  result = sqlMapper.selectSQL08(registId);
77
- System.out.println("☆7:");
78
75
 
79
76
  return result;
80
77
  }