前提・実現したいこと
Java, JSP, servletを用いて、3階層OOシステムを作っています。
for文を使用してJSP上にH2DBに格納されているデータを表示しようとしたところ
以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
HTTPステータス 500 - Internal Server Error Type Exception Report メッセージ An exception occurred processing [/TesterOne.jsp] at line [31] 説明 The server encountered an unexpected condition that prevented it from fulfilling the request. 例外 org.apache.jasper.JasperException: An exception occurred processing [/TesterOne.jsp] at line [31] 28: <th>batterySurvivalTime</th> 29: </tr> 30: <% 31: for(int i=0; i<phones.size(); i++) { 32: Phone aPhone = (Phone)phones.get(i); 33: out.println("<form action=\"/Reidai18/AddUpdateDeleteServlet\" method=\"post\">"); 34: out.println("<tr>"); Stacktrace: org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:593) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:482) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330) javax.servlet.http.HttpServlet.service(HttpServlet.java:741) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) servlet.FindServlet.doPost(FindServlet.java:63) javax.servlet.http.HttpServlet.service(HttpServlet.java:660) javax.servlet.http.HttpServlet.service(HttpServlet.java:741) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) 原因 java.lang.NullPointerException org.apache.jsp.TesterOne_jsp._jspService(TesterOne_jsp.java:152) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:741) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:444) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330) javax.servlet.http.HttpServlet.service(HttpServlet.java:741) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) servlet.FindServlet.doPost(FindServlet.java:63) javax.servlet.http.HttpServlet.service(HttpServlet.java:660) javax.servlet.http.HttpServlet.service(HttpServlet.java:741) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) 注意 原因のすべてのスタックトレースは、のログに記録されています
該当のソースコード
JSP
1//TesterOne.jsp 2<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> 3<%@ page import="model.*" %> 4<%@ page import="java.util.ArrayList" %> 5<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 6 7<%//セッションスコープからPhoneオブジェクトを取得 8Phone resultPhone = (Phone) session.getAttribute("phone"); 9ArrayList<Phone> phones = (ArrayList<Phone>)session.getAttribute("phones"); 10%> 11<html> 12<head> 13<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 14<title>Phoneクラスのインスタンス化の結果</title> 15</head> 16<body> 17<% 18out.println(resultPhone.tellAboutSelf()); 19%> 20<hr size= "5" color="blue"> 21<H2>②管理者用の追加・更新・削除</H2> 22<p>DBに格納されたPhoneオブジェクト一覧</P> 23<form action="/Reidai18/AddUpdateDeleteServlet" method="post"> 24<table border=1> 25 <tr> 26 <th> </th> 27 <th> </th> 28 <th>number</th> 29 <th>password</th> 30 <th>batterySurvivalTime</th> 31 </tr> 32<% 33for(int i=0; i<phones.size(); i++) { 34Phone aPhone = (Phone)phones.get(i); 35out.println("<form action=\"/Reidai18/AddUpdateDeleteServlet\" method=\"post\">"); 36out.println("<tr>"); 37 out.println("<td><input type=\"submit\" name=\"update\" value=\"更新\"></td>");//更新ボタン 38 out.println("<td><input type=\"submit\" name=\"delete\" value=\"削除\"></td>");//削除ボタン 39 out.println("<input type=\"hidden\" value=\"" + aPhone.getNumber() + "\" name=\"number\">"); 40 out.println("<td>" + aPhone.getNumber() + "</td>"); 41 out.println("<td><input type=\"text\" name=\"password\" value=\"" + aPhone.getPassword() + "\"></td>"); 42 out.println("<td><input type=\"text\" name=\"batterySurvivalTime\" value=\"" + 43aPhone.getBatterySurvivalTime() + "\"></td>"); 44out.println("</tr>"); 45out.println("</form>"); 46} 47%> 48 49 50 <tr> 51 <td></td> 52 <td></td> 53 <td> <input type="text" name="addNumber"></td> 54 <td> <input type="text" name="addPassword"></td> 55 <td> <input type="text" name="addBatterySurvivalTime"></td> 56 <td> <input type="submit" name="add" value="追加"></td> 57 <td> <input type="reset" value="キャンセル"></td> 58 </tr> 59 </table> 60</form> 61</body> 62</html> 63
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
eclipseはver4.8を使用しています。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/10 10:03
退会済みユーザー
2018/10/10 10:52
2018/10/19 01:47