ログインを完了したらデータベースから全コメントを持ってきてリストに格納して表示するアプリを作りたいのですが
表示しようとする画面に何も映りません。
(確か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