質問編集履歴
3
補足説明追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
内部にテーブルを保持している構造だったので、それを
|
6
6
|
MySQL,jDBCで外部化しようとしています。
|
7
7
|
一覧表示、更新、参照機能だけのシンプルな画面です。
|
8
|
-
まずは一覧機能を実装しようとしたところ、以下のメッセージが
|
8
|
+
まずは一覧機能を実装しようとしたところ、NULL例外で以下のメッセージが
|
9
9
|
発生しました。エラーの原因個所は特定できました。
|
10
10
|
List<Map<String, Object>> list1 = jdbcTemplate.queryForList("select * from unit02.addressbook");
|
11
11
|
ただ、この記述のどこに問題があってNULLが発生しているのかがわかりません。
|
@@ -296,5 +296,5 @@
|
|
296
296
|
```
|
297
297
|
### 試したこと
|
298
298
|
|
299
|
-
AddressBookController.java
|
299
|
+
AddressBookController.javaの@Controller直下だと、エラーにならずDBの内容を表示できます。
|
300
300
|
(現在はコメント化しています)
|
2
タイトル変更
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
|
1
|
+
queryForListがうまくいきません。
|
body
CHANGED
File without changes
|
1
添付資料の追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -17,7 +17,6 @@
|
|
17
17
|
```
|
18
18
|
HTTPステータス 500 - Request processing failed; nested exception is java.lang.NullPointerException
|
19
19
|
|
20
|
-
|
21
20
|
type 例外レポート
|
22
21
|
|
23
22
|
メッセージ Request processing failed; nested exception is java.lang.NullPointerException
|
@@ -25,48 +24,8 @@
|
|
25
24
|
説明 The server encountered an internal error that prevented it from fulfilling this request.
|
26
25
|
|
27
26
|
The server encountered an internal error that prevented it from fulfilling this request.
|
28
|
-
|
29
|
-
例外
|
30
|
-
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.NullPointerException
|
31
|
-
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:982)
|
32
|
-
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
|
33
|
-
javax.servlet.http.HttpServlet.service(HttpServlet.java:643)
|
34
|
-
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
|
35
|
-
javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
|
36
|
-
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
|
37
|
-
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
原因
|
42
|
-
java.lang.NullPointerException
|
43
|
-
jp.practice.address.RecordManager.getEmployeeList(RecordManager.java:66)
|
44
|
-
jp.practice.address.AddressBookController.list(AddressBookController.java:92)
|
45
|
-
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
|
46
|
-
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
|
47
|
-
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
|
48
|
-
java.lang.reflect.Method.invoke(Method.java:498)
|
49
|
-
org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
|
50
|
-
org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
|
51
|
-
org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:116)
|
52
|
-
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
|
53
|
-
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
|
54
|
-
org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
|
55
|
-
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963)
|
56
|
-
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897)
|
57
|
-
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
|
58
|
-
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
|
59
|
-
javax.servlet.http.HttpServlet.service(HttpServlet.java:643)
|
60
|
-
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
|
61
|
-
javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
|
62
|
-
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
|
63
|
-
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
|
64
|
-
|
65
|
-
|
66
27
|
```
|
67
|
-
|
68
28
|
### 該当のソースコード
|
69
|
-
|
70
29
|
```Java
|
71
30
|
package jp.practice.address;
|
72
31
|
|
@@ -78,7 +37,6 @@
|
|
78
37
|
import org.springframework.web.bind.annotation.RequestMapping;
|
79
38
|
/**e n d*/
|
80
39
|
|
81
|
-
|
82
40
|
@Controller
|
83
41
|
@RequestMapping(value = "/book")
|
84
42
|
public class AddressBookController {
|
@@ -90,12 +48,10 @@
|
|
90
48
|
private static final String REFMSG = "情報が取得できました";
|
91
49
|
private static final String UPDMSG = "情報を更新してください";
|
92
50
|
private static final String ERRMSG = "該当するデータはありません";
|
93
|
-
|
94
51
|
/**start ****/
|
95
52
|
// @Autowired
|
96
53
|
// private JdbcTemplate jdbcTemplate;
|
97
54
|
/**e n d*/
|
98
|
-
|
99
55
|
@RequestMapping(value = "/start")
|
100
56
|
public String init(AddressBookForm form, Model model) {
|
101
57
|
/**start ****/
|
@@ -215,7 +171,6 @@
|
|
215
171
|
}
|
216
172
|
return list.get(index);
|
217
173
|
}
|
218
|
-
|
219
174
|
/**
|
220
175
|
* 指定した従業員情報を反映
|
221
176
|
*
|
@@ -233,9 +188,113 @@
|
|
233
188
|
return list1;
|
234
189
|
/**e n d*/
|
235
190
|
}
|
236
|
-
|
237
191
|
```
|
192
|
+
```JSP
|
193
|
+
<%@ page session="false" language="java"
|
194
|
+
contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
|
195
|
+
<%@ page import="java.time.LocalDate"%>
|
196
|
+
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
|
197
|
+
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
|
198
|
+
<!DOCTYPE html>
|
199
|
+
<html>
|
200
|
+
<head>
|
201
|
+
<link rel="stylesheet" type="text/css"
|
202
|
+
href="/address/resources/css/common.css" />
|
203
|
+
<title>住所録(初期画面)</title>
|
204
|
+
</head>
|
205
|
+
<body>
|
206
|
+
<form:form modelAttribute="addressBookForm" action="/address/book">
|
207
|
+
<div class="header">
|
208
|
+
<span class="titleName">住所録</span>
|
209
|
+
<div class="date"><%=LocalDate.now()%></div>
|
210
|
+
</div>
|
211
|
+
<div class="main">
|
212
|
+
<div class="message">
|
213
|
+
<c:out value="${message}" />
|
214
|
+
</div>
|
215
|
+
<div>
|
216
|
+
<span class="itemName">従業員番号:</span>
|
217
|
+
<form:input path="id" size="31" />
|
218
|
+
</div>
|
219
|
+
</div>
|
220
|
+
<div class="footer">
|
221
|
+
<div>
|
222
|
+
<input type="submit" name="reference" value="参照" />
|
223
|
+
</div>
|
224
|
+
<div>
|
225
|
+
<input type="submit" name="update" value="更新" />
|
226
|
+
</div>
|
227
|
+
<div>
|
228
|
+
<input type="submit" name="list" value="一覧" />
|
229
|
+
</div>
|
230
|
+
</div>
|
231
|
+
<!-- start -->
|
232
|
+
<!-- <p> DB's id: ${id} name: ${name} tel: ${tel} address: ${address} . </p> -->
|
233
|
+
<!-- end -->
|
234
|
+
</form:form>
|
235
|
+
</body>
|
236
|
+
</html>
|
237
|
+
```
|
238
|
+
```JSP
|
239
|
+
<%@ page session="false" language="java"
|
240
|
+
contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
|
241
|
+
<%@ page import="java.time.LocalDate"%>
|
242
|
+
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
|
243
|
+
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
|
244
|
+
<!DOCTYPE html>
|
245
|
+
<html>
|
246
|
+
<head>
|
247
|
+
<link rel="stylesheet" type="text/css"
|
248
|
+
href="/address/resources/css/common.css" />
|
249
|
+
<title>住所録(一覧画面)</title>
|
250
|
+
</head>
|
251
|
+
<body>
|
252
|
+
<form:form modelAttribute="addressBookForm" action="/address/book">
|
253
|
+
<div class="header">
|
254
|
+
<span class="titleName">住所録</span>
|
255
|
+
<div class="date"><%=LocalDate.now()%></div>
|
256
|
+
</div>
|
257
|
+
<div>
|
258
|
+
社員数 :
|
259
|
+
<c:out value="${employeeCount}"></c:out>
|
260
|
+
人
|
261
|
+
</div>
|
262
|
+
<table>
|
263
|
+
<tr>
|
264
|
+
<th>従業員番号</th>
|
265
|
+
<th>名前</th>
|
266
|
+
<th>電話番号</th>
|
267
|
+
<th>住所</th>
|
268
|
+
</tr>
|
269
|
+
<c:forEach items="${employeeList}" var="employee" varStatus="status">
|
270
|
+
<c:choose>
|
271
|
+
<c:when test="${status.count % 2 == 0}">
|
272
|
+
<tr class="even">
|
273
|
+
<td>${employee.id}</td>
|
274
|
+
<td>${employee.name}</td>
|
275
|
+
<td>${employee.phone}</td>
|
276
|
+
<td>${employee.address}</td>
|
277
|
+
</tr>
|
278
|
+
</c:when>
|
279
|
+
<c:otherwise>
|
280
|
+
<tr>
|
281
|
+
<td>${employee.id}</td>
|
282
|
+
<td>${employee.name}</td>
|
283
|
+
<td>${employee.phone}</td>
|
284
|
+
<td>${employee.address}</td>
|
285
|
+
</tr>
|
286
|
+
</c:otherwise>
|
287
|
+
</c:choose>
|
288
|
+
</c:forEach>
|
289
|
+
</table>
|
290
|
+
<div class="listFooter">
|
291
|
+
<input type="submit" name="toInit" value="戻る" />
|
292
|
+
</div>
|
293
|
+
</form:form>
|
294
|
+
</body>
|
295
|
+
</html>
|
296
|
+
```
|
238
297
|
### 試したこと
|
239
298
|
|
240
|
-
AddressBookControllerでDBの内容の表示はできました。
|
299
|
+
AddressBookController.javaでDBの内容の表示はできました。
|
241
300
|
(現在はコメント化しています)
|