A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 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);

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马