本帖最后由 Jack.李 于 2017-10-31 14:41 编辑
1:首先需要理解购物车实现的一些基本步骤。
1.1:首先考虑我购买的是哪一本书籍或者那一件商品,是不是,这里可以使用id传参确定购买的是那一件商品或者书籍,也可以使用session中取出哪一本书籍,这里采用从session的取出那一件商品或者书籍
代码如:
Book book=(Book)session.getAttribute("book");
1.2:第二考虑如何把书籍放到购物车中
1.1.1:首先考虑是否有购物车,如果没有,则创建,如果有直接使用
1.1.2:其次先将购物车从session中拿出来,不存在就创建。
代码如:
Map<Integer,CartItem> cart=(Map<Integer,CartItem>)session.getAttribute("cart");
//如果没有购物车,那么创建,只有第一次访问才会操作
if(cart==null){
//new一个购物车
cart=new HashMap<>();
}
1.3:考虑如何把书籍放到购物车中
1.1.1:第一考虑购物车中是否有该书籍,所以先从购物车中获取该书籍,如果为空,那么没有该书籍
代码如:
CartItem item=(CartItem)cart.get(book.getBookid());
if(item==null){
//如果购物车中不存在该书籍,那么创建,且数量默认为1
item=new CartItem();
//将书籍放到购物车中
item.setBook(book);
//将书籍的默认数量为1
item.setNumber(1);
}else{
//如果购物车中以及有该书籍,那么数量加1
item.setNumber(item.getNumber()+1);
}
1.4:考虑如何把购物车项(即挑选的书籍是哪一个和书本的数量)放到购物车中
代码如:
cart.put(book.getBookid(),item);
1.5:将购物车放到session中,方便后面取出来
代码如:
session.setAttribute("cart", cart); |
|