日期:2014-05-17  浏览次数:20775 次

关于JSP购物车里某商品的数量修改的问题
我用了链表来存放购物车,然后要修改数量的时候总是按了修改之后购物车就只剩一个了。而且数量没改,求大神指点。。
下面是购物车处理servlet的代码

String id = request.getParameter("gid");
String quantity = request.getParameter("quantity");
String ctrl = request.getParameter("crtl");
ArrayList cart = new ArrayList();
ArrayList mycart = (ArrayList) session.getAttribute("mycart");
Iterator i = mycart.iterator();

if(ctrl.equals("change")){
while (i.hasNext()) {
CartBean temp = (CartBean) i.next();
if (temp.getGid().equals(id)) {
temp.setGquantity(quantity);
}
cart.add(temp);
}
} else if(ctrl.equals("delete")){
while (i.hasNext()) {
CartBean temp = (CartBean) i.next();
cart.add(temp);
if (temp.getGid().equals(id)) {
cart.remove(temp);
}
}
}

session.setAttribute("mycart", cart);
RequestDispatcher rd = request.getRequestDispatcher("cart.jsp");
rd.forward(request, response);

------解决方案--------------------
mycart 保存的只是对一些列 CartBean 的引用。
你的 temp 也只是对原来保存对象的一个引用,你没有 new 新对象。