商城项目购物车的实现

  • 一,新建购物车的实体类Cart
  • 二,在选择商品类型页面进行页面跳转
  • 三,在controller进行添加商品对象并记入session
  • 四,购物车页面接收购物车信息并展示
  • 五,补充说明

首先是springboot和thymeleaf整合的demo项目,然后使用session实现购物车

一,新建购物车的实体类Cart

public class Cart implements java.io.Serializable{private Shangpin shangpin;//存放商品实体类的private Integer number;//商品数量//setter和getter方法省略

二,在选择商品类型页面进行页面跳转

      //购物车,把id参数传到后台controllerfunction shoppingCar() {var id=$("#baga").val();var color=$("#hiddenColor").val();var size=$("#hiddenSize").val();location.href="/demo/shoppingCart?id="+id+"&color="+color+"&size="+size;}

三,在controller进行添加商品对象并记入session

 /*** 添加到购物车*/
@RequestMapping("/shoppingCart")public String shoppingCart(Integer id,HttpSession session,String color,String size){Integer ids=Integer.valueOf(id);//根据id获取商品对象List<Map> list=selectService.spMessage(ids);System.err.println("商品列表:"+list);Shangpin shangpin=new Shangpin();shangpin.setPicpath((String) list.get(0).get("picpath"));shangpin.setColor(color);shangpin.setSize(size);shangpin.setName((String)list.get(0).get("name"));shangpin.setPrice((Double) list.get(0).get("price"));shangpin.setId((Integer) list.get(0).get("id"));//获取购物车Map<Integer, Cart> cartMap=(Map<Integer, Cart>)session.getAttribute("cartMap");//第一次添加商品到购物车if(cartMap==null){cartMap=new HashMap<Integer, Cart>();//实例化map对象//实例化购物车对象Cart cart=new Cart();cart.setShangpin(shangpin);cart.setNumber(1);//保存商品对象到map集合中cartMap.put(id,cart);}else{//第一次以后的操作Cart cart=cartMap.get("id");//根据商品id,获取购物车实体类if(cart!=null){//存在相同的商品cart.setNumber(cart.getNumber()+1);}else{cart=new Cart();cart.setShangpin(shangpin);cart.setNumber(1);cartMap.put(id,cart);}}//然后保存到session中session.setAttribute("cartMap",cartMap);return "forward:getShoppingCar";
}
/*** 从session中取出购物车信息,并转发到购物车页面展示商品信息*/
@RequestMapping("getShoppingCar")public String getShoppingCar(HttpSession session,Model model){Map<Integer,Cart> cartMap =(Map<Integer,Cart>)session.getAttribute("cartMap");model.addAttribute("carList",cartMap);return "udai_shopcart";
}

四,购物车页面接收购物车信息并展示

<table class="table table-bordered"><thead><tr><th width="150"><label class="checked-label"><input type="checkbox" class="check-all"><i></i> 全选</label></th><th width="300">商品信息</th><th width="150">单价</th><th width="200">数量</th><th width="200">现价</th><th width="80">操作</th></tr></thead><tbody><tr th:each="list:${carList}"><th scope="row"><label class="checked-label"><input type="checkbox"><i></i><div class="img">![在这里插入图片描述]()</div></label></th><td><div class="name ep3" th:text="${list.value.shangpin.name}"></div>颜色分类:<div th:text="${list.value.shangpin.color}"></div>尺码:<div th:text="${list.value.shangpin.size}"></div></td><td th:text="${list.value.shangpin.price}">¥20.0</td><td><div class="cart-num__box"><input type="button" class="sub" value="-"><input type="text" class="val" value="1" maxlength="2"><input type="button" class="add" value="+"></div></td><td th:text="${list.value.shangpin.price}"></td>//这里删除按钮可获得对应的id,具体删除就是删除对应session中的键值对就可以了。<td><a th:onclick="caonima([[${list.value.shangpin.id}]])">删除</a></td></tr></tbody></table>

五,补充说明

因为购物车信息存储的是键值对,并且值是以对象的形式存储的,所以,使用thymeleaf遍历数组取数据的时候需要这样才能取出对应的数据。

<div class="name ep3" th:text="${list.value.shangpin.name}"></div>

如果使用的是jsp和c标签的话,只需要如下即可。

<td>${list.value.shangpin.name}</td>

效果如图

上面是购物车的基本操作,有问题欢迎留言!

商城项目购物车的实现相关推荐

  1. [golang gin框架] 27.Gin 商城项目-购物车

    1.先来看一个问题 购物车数据保持到哪里? 1.购物车数据保存在本地 (cookie或者 redis缓存中),下面统一保存到cookie中,保存到redis中和cookie中逻辑步骤其实都是一样的 2 ...

  2. 微信小程序 - 商城项目 - 购物车

    购物车页面布局 引入 WeUI: {"usingComponents": {"mp-cells": "weui-miniprogram/cells/c ...

  3. vue尚品汇商城项目-day04【29.加入购物车操作(难点)】

    文章目录 29.加入购物车操作(难点) 29.1加入购物车按钮 29.2addCartSuce 29.3购物车 29.3.1 向服务器发送ajax请求,获取购物车数据 29.3.2UUID临时游客身份 ...

  4. 怎样设计一个商城项目?

    这两天公司要做一个商城项目,网上搜了很多没找到完整的.有结构体系的资料,可能这件事本身并不难,但是对新手非常不友好,所以我借机把这些碎片化的资料尝试整理成一个有体系的资料,希望能对你有帮助.资料来源包 ...

  5. 基于SpringBoot + Vue的小程序商城项目(附源码),支持分销、团购、秒杀、优惠券。。。...

    前些时候一直有粉丝让我分享带分销的商城项目,网上收集了一波,希望能帮到大家. 面向对象 该程序是企业在创立初期很好的技术基础框架,加快公司项目开发进度,当然也可以对现有的系统进行升级: 个人开发者也可 ...

  6. java代码实现购物车小程序_使用Taro实现小程序商城的购物车功能模块的实例代码...

    Taro 是一套遵循 React 语法规范的 多端开发 解决方案. 现如今市面上端的形态多种多样,Web.React-Native.微信小程序等各种端大行其道,当业务要求同时在不同的端都要求有所表现的 ...

  7. python美多商城项目百度网盘_美多商城项目(七)

    正文共: 7620字 4图 预计阅读时间: 20分钟 每日分享 If you can change your mind, you can change your life. 如果你愿意改变你的想法,你 ...

  8. django debug=false后静态文件丢失_python框架Django实战商城项目之工程搭建

    项目说明 该电商项目类似于京东商城,主要模块有验证.用户.第三方登录.首页广告.商品.购物车.订单.支付以及后台管理系统. 项目开发模式采用前后端不分离的模式,为了提高搜索引擎排名,页面整体刷新采用j ...

  9. python开发商城实战_python框架Django实战商城项目之工程搭建

    项目说明 该电商项目类似于京东商城,主要模块有验证.用户.第三方登录.首页广告.商品.购物车.订单.支付以及后台管理系统. 项目开发模式采用前后端不分离的模式,为了提高搜索引擎排名,页面整体刷新采用j ...

最新文章

  1. odoo开发笔记 -- 异常、错误、警告、提示、确认信息显示
  2. mysql数据库连接jar_mysql数据库连接包
  3. CNN+LSTM+CTC
  4. 无影云电脑居家办公最佳实践(AD域账号)
  5. CTime,Systemtime的比较还有转换成日期格式。
  6. [UOJ299][CTSC2017] 游戏
  7. mac版mysql 1290_Mac 终端下mysql load data infile 文件路径 into table 表名称 操作,[Error Code] 1290 - The MyS...
  8. 2021年JavaScript的发展前景如何呢?
  9. 洛谷 P2294 [HNOI2005]狡猾的商人
  10. 详解离线安装Python库
  11. php键盘输入函数,基础篇php常用输入语句和函数
  12. 泰安技师学院计算机专业,泰安技师学院有哪些系部和专业
  13. 御剑端口扫描工具2020下载
  14. 千呼万唤始出来 Google GDrive将于4月初正式推出
  15. 中英文字数统计以及信息熵的计算
  16. 软件工程学习参考书籍
  17. 微信公众平台对接C#-普通消息接收
  18. 小爱音箱怎么装app_小爱音箱app|小米AI音箱app(小米小爱app)下载 v1.2.11 安卓版 - 比克尔下载...
  19. pr图形模板预设怎么使用_PR怎样安装动态图形模板?怎样调用Mogrt预设?Premiere导入MOGRTs预设完整教程...
  20. ege函数库_ege图形库基本说明

热门文章

  1. 提升Flash寿命的方法
  2. Excel导入数据下载模板示例
  3. 2016总结与2017展望
  4. 计算机系统与维护的专业知识,计算机系统与维护专业
  5. 网格化管理解决方案_响应表问题的网格解决方案
  6. Axure之支付宝官方控件库
  7. 计算机可以重复读写的存储设备是,可以重复读写的存储设备是
  8. Windows7游戏花屏通用补丁1.2,解决暴力摩托等花屏不能玩的游戏
  9. 武汉php 织梦,给你八分钟搞定dedeCMS(织梦内容管理系统)_PHP教程
  10. word恢复未保存的文件