想用jsp做一个购物车,我用想把每次点击的想要购买的商品放进一个Arraylist当中,但是当我点击下一个商品的时候,就把前面的商品给覆盖了,不知道如何实现不同商品累加在Arraylist中,我的代码是:
(1)viewProduct.jsp //浏览商品
<c:forEach var="vc" items="${pc.sList}">
            <table border="0" align="left">
                                  
                  <tr>
                     <td align="right">内存:</td>
                     <td align="left"> <c:out value="${vc.memory}"/></td>
                                                                            
                   <td > <a href='viewProductDetails.jsp?paramm=${vc.productId}'>查看详情a> </td>
                 <td > <a href='addToCart.jsp?paramm=${vc.productId}'放入购物车<a>  </td> 
              </tr>  
           </table>
</c:forEach>(2)addToCart.jsp  //添加至购物车
<body>
    <%     
         String productId=request.getParameter("paramm");
          Object o=session.getAttribute("cart");
         CartManager cart=null;
         if(o==null)
            cart=new CartManager();
         else
            cart=(CartManager)o;
          cart.addGoods(productId);      
           ArrayList clist=cart.getList();
         request.getSession().setAttribute("clist",clist);
         session.setMaxInactiveInterval(1800); 
         response.sendRedirect("allProduct.jsp");
     %>
  请问如何解决呢?谢谢指教!!

解决方案 »

  1.   

    你得用ajax来控制你要购买的商品,写一个操作商品的类。我这里有个例子有时间传给你吧,Ajax做的。网上也有很多,去搜搜
      

  2.   

    楼主可以试试用HashMap来存放商品信息,key存商品编号,value存商品bean,这样你对于商品的逻辑操作就容易些。然后利用单例模式,就不存在你说的把前面的商品给覆盖了的问题。
      

  3.   

      Object o=session.getAttribute("cart"); 我怎么没看到你把这个o保存回去呢?比如
    String productId=request.getParameter("paramm");
    Object o=session.getAttribute("cart");
    CartManager cart=null;
    if(o==null){
      cart=new CartManager();
      // 至少这个新的得保存一下吧,否额下次你从哪里得到呢?
      session.setAttribute("cart",o);
    }else{
      cart=(CartManager)o; 
    }你不保存,每次拿到的都是null, 所以每次都new 一个新的出来了。
      

  4.   


    建议用map操作把map放在session中再从map中获得对象(键值对)
    用map修改的时候比list可方便多了
      

  5.   

    楼主可以在用户登陆时就创建一个LIST,放在SESSION里面,也可以在第一次购买时创建,但是要在程度里做判断,即判断是是否为NULL,
      

  6.   

    原来是我没有保存cart,谢谢紫竹大哥,呵呵....