前提・実現したいこと
入力フォームに登録情報(名前・価格・仮おきかどうか)を登録し、それを表示するシステムを制作しています。
そこで入力フォームで受け取ったgetParameterをArrayListに格納し、セッションスコープに乗せて、jspで表示したいです。
getParameterをArrayListに格納する方法がわからず、自力で下記コードを書いたところ実行されず困っています。ご教授お願いいたします。
javaを学び始めて一か月も経ってない超初心者なので、具体的に教えていただけると嬉しいです。
コードはサーブレットdoPost部分とbeanのjavaファイル、jspファイルです。
該当のソースコード
サーブレットdoPost部分
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); String name=request.getParameter("name"); String money=request.getParameter("money"); String kari=request.getParameter("kari"); Handmaidbeans hm = new Handmaidbeans(); hm.setName(name); hm.setMoney(money); hm.setKari(kari); ArrayList<Handmaidbeans> list = new ArrayList<Handmaidbeans>(); list.add(hm); HttpSession session = request.getSession(); session.setAttribute("商品情報", list); RequestDispatcher rd = request.getRequestDispatcher("add.jsp"); rd.forward(request, response); }
package beans;
import java.io.Serializable;
public class Handmaidbeans implements Serializable{
private String name; private String money; private String kari; public Handmaidbeans() { } public Handmaidbeans(String name, String money, String kari) { this.setName(name); this.setMoney(money); this.setKari(kari); } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getMoney() { return money; } public void setMoney(String money) { this.money = money; } public String getKari() { return kari; } public void setKari(String kari) { this.kari = kari; }
}
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="beans.Handmaidbeans" %>
<% Handmaidbeans hm =(Handmaidbeans) session.getAttribute("商品情報");%>
</body></html><tr> <th>価格</th> <td><%= hm.getMoney()%></td> </tr> <tr> <th>仮</th> <td><%= hm.getKari()%></td> </tr> </table> <a href="http://localhost:8080/Handmaid/Handmaid.html">戻る</a>
表示されているエラー
タイプ 例外報告
メッセージ [/add.jsp] の処理中に行番号 [4] で例外が発生しました。
説明 サーバーは予期しない条件に遭遇しました。それはリクエストの実行を妨げます。
例外
org.apache.jasper.JasperException: [/add.jsp] の処理中に行番号 [4] で例外が発生しました。
1: <%@ page language="java" contentType="text/html; charset=UTF-8"
2: pageEncoding="UTF-8"%>
3: <%@ page import="beans.Handmaidbeans" %>
4: <% Handmaidbeans hm =(Handmaidbeans) session.getAttribute("商品情報");%>
5:
6: <!DOCTYPE html>
7: <html>
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:626)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:515)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
Survlet.addSurvlet.doPost(addSurvlet.java:62)
javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
根本原因
java.lang.ClassCastException: class java.util.ArrayList cannot be cast to class beans.Handmaidbeans (java.util.ArrayList is in module java.base of loader 'bootstrap'; beans.Handmaidbeans is in unnamed module of loader org.apache.catalina.loader.ParallelWebappClassLoader @165b2f7f)
org.apache.jsp.add_jsp._jspService(add_jsp.java:121)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:71)
javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:477)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
Survlet.addSurvlet.doPost(addSurvlet.java:62)
javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
注意 原因のすべてのスタックトレースは、サーバのログに記録されています
回答1件
あなたの回答
tips
プレビュー