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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Java EE

Java EE(Java Enterprise Edition)はJavaベースのテクノロジーとその相互運用の仕様をまとめたものです。サーバとクライアントのアーキテクチャを規定し、特定アプリケーションのクラス用に定義されたテクノロジー設定のプロファイルを使用します。

JSP

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

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

servlet

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

Q&A

解決済

1回答

8306閲覧

データベースの値をjspファイルから出力したいです。

kjfnfljnf

総合スコア23

Java EE

Java EE(Java Enterprise Edition)はJavaベースのテクノロジーとその相互運用の仕様をまとめたものです。サーバとクライアントのアーキテクチャを規定し、特定アプリケーションのクラス用に定義されたテクノロジー設定のプロファイルを使用します。

JSP

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

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

servlet

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

0グッド

0クリップ

投稿2018/05/26 22:57

編集2018/05/26 23:47

サーブレットでmysqlからデータベースを所得

dataListという名前の1つのarrayListに全ての値を入れる

jspファイルに送ってそれを出力

ということをやりたいのですが
jspファイルでどのようにコードを書けばいいか分かりません。
コンソールではgetメソッドを使うことで思っている通りに出力することができました。

jspファイルへの渡し方、
jspファイル内でforEachを使う必要があると思うのですが
それの使い方がよく分かりません。
ご教示お願いします。

サーブレット

java

1 2 3import java.io.IOException; 4import java.sql.Connection; 5import java.sql.DriverManager; 6import java.sql.ResultSet; 7import java.sql.SQLException; 8import java.sql.Statement; 9import java.util.ArrayList; 10import java.util.HashMap; 11import java.util.List; 12import java.util.Map; 13 14import javax.servlet.RequestDispatcher; 15import javax.servlet.ServletException; 16import javax.servlet.annotation.WebServlet; 17import javax.servlet.http.HttpServlet; 18import javax.servlet.http.HttpServletRequest; 19import javax.servlet.http.HttpServletResponse; 20 21/** 22 * Servlet implementation class DataBaseServer 23 */ 24@WebServlet("/DataBaseServer") 25public class DataBaseServer extends HttpServlet { 26 private static final long serialVersionUID = 1L; 27 28 /** 29 * @see HttpServlet#HttpServlet() 30 */ 31 public DataBaseServer() { 32 super(); 33 // TODO Auto-generated constructor stub 34 } 35 36 /** 37 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 38 */ 39 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 40 try { 41 Class.forName("com.mysql.jdbc.Driver"); 42 Connection conn = DriverManager.getConnection( 43 "jdbc:mysql://localhost:3306/record","root","xxxxxx"); 44 45 //データの出力 46 Statement st = conn.createStatement(); 47 ResultSet rs = 48 st.executeQuery("select * from first"); 49 50 List<DataClass> dataList = new ArrayList<DataClass>(); 51 52 53 54 while(rs.next()) { 55 DataClass data = new DataClass(); 56 57 58 data.setId(rs.getInt("id")); 59 data.setName(rs.getString("name")); 60 data.setJpn(rs.getInt("jpn")); 61 data.setMath(rs.getInt("math")); 62 data.setEng(rs.getInt("eng")); 63 data.setSci(rs.getInt("sci")); 64 65 dataList.add(data); 66 67 } 68 69 for(int i =0; i < dataList.size(); i++) { 70 System.out.println(dataList.get(i).getId() + dataList.get(i).getName() + dataList.get(i).getJpn() + dataList.get(i).getEng() + dataList.get(i).getMath() + dataList.get(i).getSci()); 71 } 72 73 request.setAttribute("1", dataList); 74 RequestDispatcher dispatcher = request.getRequestDispatcher("/Receiver.jsp"); 75 dispatcher.forward(request, response); 76 77 78 } catch (ClassNotFoundException e) { 79 System.out.println("ドライバを読み込めませんでした "+ e); 80 } catch (SQLException e) { 81 System.out.println("データベース接続エラー"+ e); 82 } 83 } 84 85 /** 86 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 87 */ 88 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 89 // TODO Auto-generated method stub 90 doGet(request, response); 91 } 92 93} 94

jsp

pageEncoding="UTF-8"%> <%@ page import="javax.servlet.http.*,javax.servlet.*" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <%=request.getAttribute("1") %> <c:forEach items="${1}" var="rows"> <c:out value="${rows.id}"/> <c:out value="${rows.name}"/> <c:out value="${rows.jpn}"/> <c:out value="${rows.math}"/> <c:out value="${rows.eng}"/> <c:out value="${rows.sci}"/> </c:forEach> </body> </html>

サーバーエラーが発生します。

error

1Type Exception Report 2 3Message An exception occurred processing [/Receiver.jsp] at line [14] 4 5Description The server encountered an unexpected condition that prevented it from fulfilling the request. 6 7Exception 8 9org.apache.jasper.JasperException: An exception occurred processing [/Receiver.jsp] at line [14] 10 1111: </head> 1212: <body> 1313: <%=request.getAttribute("1") %> 1414: <c:forEach items="${1}" var="rows"> 1515: <c:out value="${rows.id}"/> 1616: </c:forEach> 1717: <%-- 18 19 20Stacktrace: 21 org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:593) 22 org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:467) 23 org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386) 24 org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330) 25 javax.servlet.http.HttpServlet.service(HttpServlet.java:741) 26 org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) 27 DataBaseServer.doGet(DataBaseServer.java:119) 28 javax.servlet.http.HttpServlet.service(HttpServlet.java:634) 29 javax.servlet.http.HttpServlet.service(HttpServlet.java:741) 30 org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) 31 filter.SampleFilter.doFilter(SampleFilter.java:42) 32Root Cause 33 34javax.servlet.ServletException: javax.servlet.jsp.JspTagException: Don't know how to iterate over supplied "items" in &lt;forEach&gt; 35 org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:667) 36 org.apache.jsp.Receiver_jsp._jspService(Receiver_jsp.java:165) 37 org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 38 javax.servlet.http.HttpServlet.service(HttpServlet.java:741) 39 org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:444) 40 org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386) 41 org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330) 42 javax.servlet.http.HttpServlet.service(HttpServlet.java:741) 43 org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) 44 DataBaseServer.doGet(DataBaseServer.java:119) 45 javax.servlet.http.HttpServlet.service(HttpServlet.java:634) 46 javax.servlet.http.HttpServlet.service(HttpServlet.java:741) 47 org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) 48 filter.SampleFilter.doFilter(SampleFilter.java:42) 49Root Cause 50 51javax.servlet.jsp.JspTagException: Don't know how to iterate over supplied "items" in &lt;forEach&gt; 52 org.apache.taglibs.standard.tag.common.core.ForEachSupport.toForEachIterator(ForEachSupport.java:312) 53 org.apache.taglibs.standard.tag.common.core.ForEachSupport.supportedTypeForEachIterator(ForEachSupport.java:276) 54 org.apache.taglibs.standard.tag.common.core.ForEachSupport.prepare(ForEachSupport.java:193) 55 javax.servlet.jsp.jstl.core.LoopTagSupport.doStartTag(LoopTagSupport.java:291) 56 org.apache.jsp.Receiver_jsp._jspx_meth_c_005fforEach_005f0(Receiver_jsp.java:189) 57 org.apache.jsp.Receiver_jsp._jspService(Receiver_jsp.java:147) 58 org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 59 javax.servlet.http.HttpServlet.service(HttpServlet.java:741) 60 org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:444) 61 org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386) 62 org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330) 63 javax.servlet.http.HttpServlet.service(HttpServlet.java:741) 64 org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) 65 DataBaseServer.doGet(DataBaseServer.java:119) 66 javax.servlet.http.HttpServlet.service(HttpServlet.java:634) 67 javax.servlet.http.HttpServlet.service(HttpServlet.java:741) 68 org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) 69 filter.SampleFilter.doFilter(SampleFilter.java:42) 70Note The full stack trace of the root cause is available in the server logs.

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

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

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

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

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

m.ts10806

2018/05/26 23:23 編集

現在のコードで起きている問題とその問題に対してやってみたことを追記してください。「分かっていること(できていること)」と「わかっていないこと(できていないこと)」を書かないことには回答の方向性と落とし所が不明瞭なため回答がつきにくいです。  https://teratail.com/help/question-tips#questionTips3-4
kjfnfljnf

2018/05/26 23:33 編集

失礼しました。まず、リスト内にしっかり値が入っていることを確認するためにsysoutでコンソールに出力して確認しました。そのリストをjspファイルに渡すところまであっていると思いますが、forEach内の書き方が調べてみても分かりませんでした。表のような形で出力したいです。
m.ts10806

2018/05/26 23:43

エラーもコードブロックで囲ってください。
m.ts10806

2018/05/26 23:46

エラーちゃんとみてないですが、変数の命名ルールに引っかかってる気がしないでもないです。数字から始まるものではなくアルファベットから始まる、もう少しきちんと意味をもたせた名前をつけてみてはいかがでしょうか?
kjfnfljnf

2018/05/27 13:41

仰る通りでした。解決できました。ありがとうございます。
m.ts10806

2018/05/27 13:44

私はひとまず確認のためにコメントをしただけなので、自身で回答を書き、自己解決とされては?
guest

回答1

0

自己解決

キーの名前が"1"となっていたためエラーが出ていたようです。"data"などに変えて実行すると解決しました。

投稿2018/05/31 03:27

kjfnfljnf

総合スコア23

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問