【发布时间】:2016-04-25 00:22:15
【问题描述】:
我有一个 arrayList 类型的购物车。当我在购物车中添加新商品时,我会先检查购物车是否已经有该商品。但是 cart.contains(item) 方法不起作用,即使购物车中有相同的商品,它也会返回 false。 第二个问题是我无法从购物车数组列表中删除这个项目对象。我的代码如下所示:
@Controller
@RequestMapping("/addTo.htm")
public class AddToController{
@SuppressWarnings("unchecked")
@RequestMapping(method=RequestMethod.GET)
protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception {
HttpSession session = request.getSession();
String action = request.getParameter("action");
System.out.println(action);
ModelAndView mv = new ModelAndView();
ArrayList<Item> cart;
if(session.getAttribute("cart") != null) {
cart = (ArrayList<Item>) session.getAttribute("cart");
}else {
cart = new ArrayList<Item>();
}
if(action.equals("addToCart")) {
long itemId = Long.parseLong(request.getParameter("itemId"));
ItemDAO itemDao = new ItemDAO();
Item item = itemDao.get(itemId);
System.out.println("111"+cart.contains(item));
if (!cart.contains(item)) {
cart.add(item);
}
double total = 0;
int count = 0;
for (Item i : cart) {
total = total + i.getPrice();
count += 1;
}
session.setAttribute("cart", cart);
mv.addObject("total", total);
mv.addObject("count", count);
mv.setViewName("User/viewCart");
}
if(action.equals("remove")){
System.out.println("cart size is" + cart.size());
Long itemId = Long.parseLong(request.getParameter("item"));
ItemDAO itemDao= new ItemDAO();
Item item = itemDao.get(itemId);
System.out.println(cart.contains(item));
session.setAttribute("cart", cart);
System.out.println(cart.size());
}
return mv;
}
}
谁能帮我解决这个问题?谢谢!!
【问题讨论】:
标签: java spring arraylist controller