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

質問編集履歴

3

補足説明追加

2019/05/28 06:24

投稿

usako
usako

スコア31

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.javaDBの内容表示できました
299
+ AddressBookController.javaの@Controller直下だと、エラーにならずDBの内容表示できま
300
300
  (現在はコメント化しています)

2

タイトル変更

2019/05/28 06:23

投稿

usako
usako

スコア31

title CHANGED
@@ -1,1 +1,1 @@
1
- HTTP500でNullPointerException発生していますが、原因がわかりません。
1
+ queryForListうまくません。
body CHANGED
File without changes

1

添付資料の追加

2019/05/28 06:19

投稿

usako
usako

スコア31

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
  (現在はコメント化しています)