現在プログラミングを学ぶ為に、Eclipse Tomcat phpMyAdmin を使用した開発環境で、MVCモデルでの簡単なECサイトを作成しております。
そこで質問なのですが、カートを作成する際にHttpSessionを使用して作りたいと考えているのですが、商品一覧画面から「購入」ボタンを押下し、カートページに移行。ここまではできたのですが、商品のidと、テキストボックスに入力する購入数がうまく取れず、カートページ「買い物を続ける」のボタンで商品一覧画面に戻り、再び別の商品をクリックすると、その商品しか表示されません。どのような記述をすれば自由に追加や削除が出来ますでしょうか?どなたか是非ご教授お願い致します。
lang
1コード 2 3「CartServlet」 4 5public class CartServlet extends HttpServlet { 6 7 private static final long serialVersionUID = 1L; 8 9 public void doGet (HttpServletRequest req, HttpServletResponse res) 10 throws IOException, ServletException { 11 12 HttpSession session = req.getSession(); 13 String count = req.getParameter("count"); 14 String id = req.getParameter("id"); 15 16 CartLogic logic = new CartLogic(); 17 List<SyohinBean> items = logic.execute("id"); 18 session.setAttribute("id", logic.execute(id)); 19 session.setAttribute("item", items); 20 21 CartBean cb = new CartBean(); 22 session.setAttribute("cartbean", cb); 23 24 RequestDispatcher rd = req.getRequestDispatcher("/jsp/cart.jsp"); 25 rd.forward (req, res); 26 return; 27 } 28}
lang
1コード 2 3「CartLogic」 4 5 public List<SyohinBean> execute (String id) { 6 7 Connection con = null; 8 Statement smt = null; 9 ResultSet rs = null; 10 List<SyohinBean> items = null; 11 12 try { 13 DBUtil.makeConnection(); 14 DBUtil.makeStatement(); 15 16 String sql = "SELECT id,syohinname,category,stock,price FROM syohin WHERE id="+id; 17 rs = DBUtil.execute(sql); 18 items = new ArrayList<SyohinBean>(); 19 20 if (rs != null) { 21 SyohinBean sb = new SyohinBean(); 22 sb.setId(rs.getString("id")); 23 sb.setSyohinname(rs.getString("syohinname")); 24 sb.setCategory(rs.getString("category")); 25 sb.setStock(rs.getString("stock")); 26 sb.setPrice(rs.getString("price")); 27 items.add(sb); 28 29 CartBean cb = new CartBean(); 30 cb.setSyohinBean(sb); 31 } 32 } 33 catch (Exception e) { 34 e.printStackTrace(); 35 } 36 finally{ 37 if(smt !=null){ 38 try{ 39 smt.close(); 40 }catch(SQLException e){ 41 e.printStackTrace(); 42 } 43 } 44 if(con !=null){ 45 try{ 46 con.close(); 47 }catch(SQLException e){ 48 e.printStackTrace(); 49 } 50 } 51 } 52 return items; 53 } 54} 55
lang
1コード 2 3「cartjsp」 4 5<%@ page language="java" contentType="text/html; charset=UTF-8" 6 pageEncoding="UTF-8"%> 7<%@ page import="jp.co.so.beans.CartBean" %> 8 <jsp:useBean id="item" scope="request" class="jp.co.so.beans.SyohinBean"/> 9 <jsp:useBean id="CartBean" scope="request" class="jp.co.so.beans.CartBean"/> 10<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 11 12<!DOCTYPE html> 13<html> 14 <head> 15 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 16 <title>買い物カゴ</title> 17 </head> 18 <body> 19 <h1>商品の購入/決済</h1> 20 <hr> 21 <table border="1" width="90%" class="list"> 22 <tr> 23 <th> 商品名 </th> 24 <th> 種類 </th> 25 <th> 在庫 </th> 26 <th> 価格 </th> 27 <th> 購入数 </th> 28 <th colspan="2"></th> 29 </tr> 30 <c:forEach var="item" items="${items}" varStatus="status"> 31 <form action="" method="get"> 32 <tr> 33 <td><c:out value="${item.syohinname}"/></td> 34 <td><c:out value="${item.category}"/></td> 35 <td style="text-align:right">あと<c:out value="${item.stock}"/>個</td> 36 <td style="text-align:right"><c:out value="${item.price}"/>円</td> 37 <form action="" method="get"> 38 <td align="center"> 39 <input type="text" name="count" value="<jsp:getProperty name="CartBean" property="count"/>" 40 size="4" id="count"> 41 </td> 42 <td align="center"> 43 <input name= "id" type="hidden" value="${item.id}"> 44 <input type="submit" name="update" value="更新"> 45 </td> 46 <td align="center"> 47 <input name= "id" type="hidden" value="${item.id}"> 48 <input type="submit" name="delete" value="削除"> 49 </td> 50 </form> 51 </tr> 52 </form> 53 </c:forEach> 54 </table> 55 <table border="0" cellpadding="3" cellspacing="1" bgcolor="#666666"> 56 <tr bgcolor="#FFFFFF"> 57 <td width="137" align="right" bgcolor="#FCF9EB"><strong>商品数</strong></td> 58 <td width="174" align="right" bgcolor="#FFFFFF"><strong>1個</strong></td> 59 </tr> 60 <tr bgcolor="#FFFFFF"> 61 <td width="137" align="right" bgcolor="#FCF9EB"><strong>商品合計</strong></td> 62 <td width="174" align="right" bgcolor="#FFFFFF"><strong>23,760円</strong></td> 63 </tr> 64 <tr bgcolor="#FFFFFF"> 65 <td align="right" bgcolor="#FCF9EB">消費税</td> 66 <td align="right"> 67 1,901円 </td> 68 </tr> 69 <tr bgcolor="#FFFFFF"> 70 <td align="right" bgcolor="#FCF9EB"><strong>合計金額</strong></td> 71 <td align="right"><strong>25,661円</strong></td> 72 </tr> 73 </table> 74 <hr> 75 <table width="100%" border="0" cellspacing="1" cellpadding="2"> 76 <tr> 77 <td valign="top" width="90"><a href="top"><input type="submit" value="買い物を続ける"></a></td> 78 <td valign="top"><a href=""><input type="submit" value="買い物カゴを空にする" border="0" onClick="return CartAllDelete();"></td> 79 <td valign="top" align="right"> 80 <form name="send" method="get" action=""> 81 <input type="submit" value="決済画面へ" border="0"> 82 </form> 83 </td> 84 </tr> 85</table> 86 </body> 87</html> 88
拙いコードで恥ずかしい限りですが、何卒よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2014/10/22 03:27