現在、研修でショッピングカート機能を作っています。
商品一覧画面(JSP)があって
各商品があって、それぞれセレクトボックスで個数を選べるようにしています。
セレクとボックスで選んだ値をajaxで取得、サーブレットにリクエストして、値を渡しています。
サーブレット側で、貰った値からDB検索して、それをArrayListに格納してArrayListをセッションに格納して、
カート画面(JSP)で各商品ごと表示をする
という流れで実装したいと考えています。
現状としては、カートには商品は表示されるのですが、一つしか表示されません。最後にセレクトボックスで選択した商品しか表示されません。
ArrayListの要素をデバッグしても、やはり要素は1のままです。
自分が考えている原因としては、ajaxで非同期でリクエストするたびに上書きされているのかなと考えているのですが、どうでしょうか?
ずっと調べているんですが、わかりません。
なにかヒントでもあれば、是非教えていただきたいです。
よろしくお願いいたします。
以下、サーブレットのコードです。
java
1public void doGet (HttpServletRequest request, HttpServletResponse response) 2 throws ServletException, IOException { 3 4 HttpSession session = request.getSession(); // セッション 5 request.setCharacterEncoding("UTF-8"); 6 RequestDispatcher dispatcher; 7 ServletContext sc = getServletContext(); 8 9 //セレクトボックスで選んだ個数と商品IDを取得、代入 10 String purchase = request.getParameter("param1"); 11 String itemId = request.getParameter("param2"); 12 13 Shopping shopping = new Shopping(); 14 //取得した値を元に検索、代入 15 CartBean bean = shopping.purchaseItem(purchase, itemId); 16 ArrayList<CartBean>cartList = new ArrayList<CartBean>(); 17 cartList.add(bean); 18 session.setAttribute("cartList",cartList); 19
わかりにくくて、すいません。
回答1件
あなたの回答
tips
プレビュー