将所有元素添加到java中的另一个List中?

时间:2015-02-12 05:25:58

标签: java list session arraylist

我正试图在“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”对象,然后与会话绑定。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

因为每次调用此方法时都要创建一个新的useradded列表。

而不是做

List<Product> useradd = new ArrayList<>();

您可以从会话中获取useradd,只创建一个新实例(如果不存在)。

List<Product> useradd = session.get("sessioncartview");
if (useradd == null) {
    useradd = new ArrayList<>();
}