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

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

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

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

Q&A

2回答

9406閲覧

java.lang.NumberFormatExceptionへの対応

sususu

総合スコア99

Java

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

0グッド

0クリップ

投稿2018/02/23 02:28

編集2018/02/23 13:35

ログインを完了したらデータベースから全コメントを持ってきてリストに格納して表示するアプリを作りたいのですが
表示しようとする画面に何も映りません。
(確かJSPのコメント表示ページに行く前に止まってしまいます。家のパソコンで書いたものではないので再度チェックいたします。失礼いたしました!)

エラーは出ていないのですが下記のような文章がコンソールに表示されます。
java.lang.NumberFormatException: For input string: "list"
文字列を数値型に変換しようとした時、文字列の形式が正しくない場合にスローされるもの
と書いてありますがどこで発生してしまっているかもわからないので対応できません。
どなたかご回答よろしくお願いいたします。

JSPファイル名 login-ok.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!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> こんにちは${customer.loginname}さん<br> <a href = "/NewOne/Chat">メインへ</a> </body> </html>
サーブレット import java.util.List; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import beans.ChatBeans; import beans.Customer; import dao.ChatDAO; /** * Servlet implementation class Chat */ @WebServlet("/Chat") public class Chat extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//ログインした時コメント取得 request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utr-8"); ChatDAO dao = new ChatDAO(); try { List<ChatBeans>list = dao.firstget("");//ファーストゲット呼び出ししてlistに代入 ServletContext application = this.getServletContext();//アプリケーションスコープ用意 application.setAttribute("List", list);//アプリケーションスコープにインスタンスをセット request.getRequestDispatcher("/jsp/chat.jsp").forward(request, response);//すべて処理が終わったらメイン画面へ } catch (Exception e) { e.printStackTrace(); } }
SQL実行クラス package dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.ArrayList; import java.util.List; import beans.ChatBeans; public class ChatDAO extends DAO { public List<ChatBeans> firstget (String keyword)throws Exception{//最初にコメント全件取得 List<ChatBeans> list = new ArrayList<ChatBeans>(); Connection con = getConnection(); PreparedStatement st = con.prepareStatement ("select * from chat where comment like ?"); st.setString(1, "%"+keyword+"%"); ResultSet rs = st.executeQuery(); while(rs.next()){ ChatBeans chatbeans = new ChatBeans(); chatbeans.setNumber(rs.getInt("number")); chatbeans.setLoginname(rs.getString("loginname")); chatbeans.setComment(rs.getString("comment")); list.add(chatbeans); } st.close(); con.close(); return list; }
JSPコメント表示画面 ファイル名chat.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!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> ${List.list} <form action = "../Chat" method = "post" > <input type = "text" name = "comment"> <input type = "submit" name = "コメント"> </form> </body> </html>
ビーンズ package beans; public class ChatBeans { private int number; private String loginname; private String comment; public int getNumber() { return number; } public void setNumber(int number) { this.number = number; } public String getLoginname() { return loginname; } public void setLoginname(String loginname) { this.loginname = loginname; } public String getComment() { return comment; } public void setComment(String comment) { this.comment = comment; } }

開発環境
OS windows10
エディション enterprise
言語 java8.0.1310.11
MariaDB10.1
HeidiSQL
eclipse NEON

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

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

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

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

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

A-pZ

2018/02/23 05:51

JSPのファイル名が書かれていないようですので記載してください。なお、エラーが出ていると思われるJSPが、記載されているJSPの中にないようですが、別のファイルではないでしょうか。
sususu

2018/02/23 12:54

お世話になります!ご指摘の通りJSPファイル名上に記載いたしました。最終的には「JSPコメント表示画面(chat.jsp)」で表示させたいのですが、その前にサーブレットURLのページで空白の画面のまま止まってしまいます。データベースも更新されません(´;ω;`)何かわかりましたらよろしくお願いいたします。<m(__)m>
guest

回答2

0

投稿2018/02/23 06:02

unz.hori

総合スコア1057

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

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

sususu

2018/02/23 13:32

ご回答ありがとうございます。 すいません!情報漏れすいません!家のパソコンで書いたものではないので今試せないのですが、 JSPコメント表示画面に遷移ができずサーブレットの画面で白いまま止まってしまっています! (質問欄に追記いたします。) 拝見させていただきました。 1.EL式とアクションタグの件に関しては、自分のプログラムがサーブレットからJSP(コメント表示画面)に遷移できるようになったら参考させていただきます!ありがとうございます! 2.「jsp:useBeanを追加してみてください。」に関してはすいません理解できませんでしたが、今回私の書いたものに関係ありますでしょうか?
unz.hori

2018/02/23 13:47

まぁ、エラーが出たら追加してみてくださいな
sususu

2018/02/23 14:05

はい! いつも回答ありがとうございます!
guest

0

java.lang.NumberFormatException: For input string: "list"

これはlistというString文字を数値に変換しようとして発生している例外です。

この文の下に続くstacktraceはなかったですか?
そこにどの部分で起こっているか、という情報が行数まで書かれています。

あと、**${List.list}**では内容すべてを表示できなかったかと…
for文で要素を回してあげないとならなかった気がします。

この辺り、ちょっと今離れているので忘れてしまいましたが、、、。

オブジェクトにアクセスする(配列、List、Map)

投稿2018/02/23 02:49

編集2018/02/23 03:02
kaputaros

総合スコア1844

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

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

sususu

2018/02/23 03:06

ありがとうございます! スタックトレースに関してもちょっと調べてみます!
sususu

2018/02/23 03:21

すいませんスタックトレースのしたの文はこのような感じになっているのですが、なぜ数値に変えようとしてしまっているのでしょうか? at java.lang.Thread.run(Thread.java:748) Caused by: java.lang.NumberFormatException: For input string: "list" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) at java.lang.Integer.parseInt(Integer.java:580) at java.lang.Integer.parseInt(Integer.java:615) at javax.el.ListELResolver.coerce(ListELResolver.java:157) at javax.el.ListELResolver.getValue(ListELResolver.java:70) at org.apache.jasper.el.JasperELResolver.getValue(JasperELResolver.java:110) at org.apache.el.parser.AstValue.getValue(AstValue.java:169) at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:184) at org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:943) at org.apache.jsp.jsp.chat_jsp._jspService(chat_jsp.java:118) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:438) ... 36 more 質問返しですいませんがよろしくお願いいたします。
kaputaros

2018/02/23 05:24

ちょっと表現があっているかあやしいのですが、 JSPファイルはサーバでロードされた際にjavaソースに変換されてコンパイルされています。 そのファイルはサーバ上にたしかあったと思うので、探してみると、どういう風にjavaソースに変換されているか、見てみるとわかりやすいかもしれませんね。 [TOMCAT_HOME]/webapps/~の配下に吐き出されているかと思います。
sususu

2018/02/23 13:07

pleiades-tomcat-8-webappsと階層をたどっていってファイルを色々開いてみたのですが、ちょっとどこのファイルを参照して良いのかわかりませんでした。せっかくアドバイスいただいたのにすいません!また調べてみます!あと配列の件ご指摘ありがとうございます! JSPの画面まで遷移できるようになったら修正に入りたいと思います!
kaputaros

2018/02/26 00:20

eclipseだと > [プロジェクトのワークスペース].metadata.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\_\org\apache\jsp にあるそうです。 ■コンパイルされたJSPファイルが見つからないhttps://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1241975762 コンパイルされたJSPのファイルは「jspファイル名_jsp.java」と変換されるので、 > org.apache.jsp.jsp.chat_jsp._jspService(chat_jsp.java:118) このあたりを探ってみてください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問