我正试图在“productId”的基础上实施“添加到购物车”的概念,就像任何电子商务网站一样。当我调用这个控制器时,它只添加用户添加到列表而不是所有产品列表的最后一个元素。
@RequestMapping("/addcart/{list.productId}")
public String addCart(@PathVariable("list.productId") Integer productId, Model m, HttpSession session) {
List<Product> cartlist = productDao.findById(productId);
List<Product> useradd = new ArrayList<>();
for (Product e : cartlist) {
useradded.add(e);
}
session.setAttribute("sessioncartview", useradded);
return "redirect:/";
}
我发现最后添加的产品只有一种,而不是所有产品清单。在“useradded”中。我想添加列表中的所有元素,即“useradded”对象,然后与会话绑定。我怎么能这样做?
答案 0 :(得分:0)
因为每次调用此方法时都要创建一个新的useradded
列表。
而不是做
List<Product> useradd = new ArrayList<>();
您可以从会话中获取useradd
,只创建一个新实例(如果不存在)。
List<Product> useradd = session.get("sessioncartview");
if (useradd == null) {
useradd = new ArrayList<>();
}