質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

Q&A

0回答

1102閲覧

JDBCのJSPで拡張for文を表示したい

swdntm0711

総合スコア0

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

0グッド

1クリップ

投稿2021/06/25 08:18

編集2021/06/25 08:21

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/ツールのバージョンなど)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

javahack

2021/06/27 08:28

for文削除するとNullPointerException出ないなら、tableNum、name、price、amount、supplyのどれかがNULLってことだから、デバッグして確認しましょう。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問