我做了一个购物车,可现在要删除根据key
  int productId=Integer.parseInt( request.getParameter("productId"));
HttpSession session=request.getSession();
Map cart=(Map)session.getAttribute("cart");
cart.remove(productId);
session.setAttribute("cart", cart);
   return mapping.findForward("shopCart");
在购物车页面点击删除(某一个商品),进入当前的action里面:在这里 productId作为key的;这一条移除后,又跳入到购物车页面,发现被删除的商品还在,但是当你继续购物后,再查看购物车,原来删除商品才不见了,是不是,我删除后都 session.setAttribute("cart", cart);最新的cart都放在session了,怎么回事?

解决方案 »

  1.   

    我做了一个购物车,可现在要删除根据key int productId=Integer.parseInt( request.getParameter("productId")); 
    HttpSession session=request.getSession(); 
    Map cart=(Map)session.getAttribute("cart"); 
    cart.remove(productId); 
    session.setAttribute("cart", cart); 
    return mapping.findForward("shopCart"); 
    在购物车页面点击删除(某一个商品),进入当前的action里面:在这里 productId作为key的;这一条移除后,又跳入到购物车页面,发现被删除的商品还在,但是当你继续购物后,再查看购物车,原来删除商品才不见了,是不是,我删除后都 session.setAttribute("cart", cart);最新的cart都放在session了,怎么回事?
      

  2.   

    参考public synchronized void deleteItem(Integer productId)
    {
       if(cart.remove(bookId);
       cart.remove(bookId);
       numOfItems--;    (商品数目)
    }