SQLから2つのテーブルの情報を取得して、forループで表示させたいです。
JDBCでモバイルオーダーシステムを作っています。
注文履歴機能のページでエラーが出てしまったので助けていただきたいです。
(プログラミング未経験&Javaをやり始めてまだ2か月で理解が乏しい為、質問の内容がおかしかったら申し訳ありません。)
エラーメッセージ
HTTPステータス 500 - An exception occurred processing JSP page /UserOrderHistory.jsp at line 68
メッセージ An exception occurred processing JSP page /UserOrderHistory.jsp at line 68
説明
The server encountered an internal error that prevented it from fulfilling this request.
例外
org.apache.jasper.JasperException: An exception occurred processing JSP page /UserOrderHistory.jsp at line 68
65: <th><font>提供状況</font></th>
66: </tr>
67:
68: <%for(int i = 0; i <tableNum.size(); i++){ %>
69: <tr>
70: <td><div class="order"><%=name.get(i) %></div></td>
71: <td><div class="order"><%=price.get(i) %></div></td>
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:574)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:476)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
原因
java.lang.NullPointerException
org.apache.jsp.UserOrderHistory_jsp._jspService(UserOrderHistory_jsp.java:199)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:438)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
該当のソースコード
JSP
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.sql.Date"%> <%@page import="dto.Order_History"%> <%@ page import="java.util.ArrayList" %> <% ArrayList<ArrayList<String>> table = (ArrayList<ArrayList<String>>) request.getAttribute("TABLE"); %> <% ArrayList<Integer> orderNum = (ArrayList<Integer>) request.getAttribute("ORDERNUM"); %> <% ArrayList<Date> dateTime = (ArrayList<Date>) request.getAttribute("DATETIME"); %> <% ArrayList<Integer> menuNum = (ArrayList<Integer>) request.getAttribute("MENUNUM"); %> <% ArrayList<String> name = (ArrayList<String>) request.getAttribute("NAME"); %> <% ArrayList<Integer> amount = (ArrayList<Integer>) request.getAttribute("AMOUNT"); %> <% ArrayList<Integer> price = (ArrayList<Integer>) request.getAttribute("PRICE"); %> <% ArrayList<Integer> tableNum = (ArrayList<Integer>) request.getAttribute("TABLENUM"); %> <% ArrayList<Boolean> supply = (ArrayList<Boolean>) request.getAttribute("SUPPLY"); %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <link rel="stylesheet" type="text/css" href="https://coco-factory.jp/ugokuweb/wp-content/themes/ugokuweb/data/reset.css"> <link rel="stylesheet" type="text/css" href="https://coco-factory.jp/ugokuweb/wp-content/themes/ugokuweb/data/5-1-9/css/5-1-9.css"> <link rel="stylesheet" type="text/css" href="css/orderLog.css"> <link rel="icon" type="image/x-icon" href="img/fabicon.jpeg"> <title>注文履歴</title> </head> <body> <header id="header" class="DownMove"> <a href="home.html"><image src="./logo1.png"></image></a> <nav> <ul id="g-navi"> <li><button class="buttonde2"><a href="UserOrderCheck.jsp" ><image src="img/bell.png" width="120px" height="115px"></image></a></button></li> <li><button class="buttonde2"><a href="UserOrderHistory.jsp"><image src="img/memo.png" width="150px" height="120px"></image></a></button></li> <li><button class="buttonde3"><a href="kaikei.html"><image src="img/cashRegister.png" width="120px" height="120px"></image></a></button></li> </ul> </nav> </header> <script type="text/javascript" src="javaScript/stlyeSheet.js"> </script> <div class="mar"></div> <div class="text"> <h1>注文履歴</h1> <table border="1" width="100%"> <tr bgcolor="#AD292B"> <th><font>メニュー名</font></th> <th><font>価格</font></th> <th><font>個数</font></th> <th><font>提供状況</font></th> </tr> <%for(int i = 0; i <tableNum.size(); i++){ %> <tr> <td><div class="order"><%=name.get(i) %></div></td> <td><div class="order"><%=price.get(i) %></div></td> <td><div class="order"><%=amount.get(i) %></div></td> <td><div class="order"><%=supply.get(i) %></div></td> </tr> <%} %> </table> <table class="table1" border="1" width="50%"> <tr> <th bgcolor="#AD292B" height=100px><font>合計</font></th> <th><div class="order">60円</div></th> </table> <br> <div class="box1"><div class="btn"> <a href="#">戻る</a> </div></div> <div class="box2"><div class="btn"> <a href="#" onclick="modalOpen()">会計</a> </div></div> </div> <!-- モーダルウインドウのエリア --> <div id="modalArea" class="modalNoDisp"> <div class="modalWindow"> <!-- ここがウインドウとなります --> <br><br><h2>合計:60円</h2><br> <h2>よろしいですか?</h2> <table class="table2"> <tr> <td><div class="delete"><a href="#" onclick="modalClose()">はい</a></div></td> <td></td> <td><div class="delete"><a href="#" onclick="modalClose()">いいえ</a></div></td> </tr> </table> <br> </div> </div> <script type="text/javascript"> function modalOpen(){ //------------------------------------------------------------ // モーダルウインドウ オープン //------------------------------------------------------------ document.getElementById("modalArea").className = "modalBg modalBgOpen"; } function modalClose(){ //------------------------------------------------------------ // モーダルウインドウ クローズ //------------------------------------------------------------ document.getElementById("modalArea").className = "modalBg modalBgClose"; } </script> <button class="fixed_btn"><img src="img/survey.png"></img></button> </body> </html>
試したこと
for文のところを削除して実行するとJSPは表示されるので、for文のところがおかしいのだと思います。
補足情報(FW/ツールのバージョンなど)
あなたの回答
tips
プレビュー