商城项目购物车的实现
商城项目购物车的实现
- 一,新建购物车的实体类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>
效果如图
上面是购物车的基本操作,有问题欢迎留言!
商城项目购物车的实现相关推荐
- [golang gin框架] 27.Gin 商城项目-购物车
1.先来看一个问题 购物车数据保持到哪里? 1.购物车数据保存在本地 (cookie或者 redis缓存中),下面统一保存到cookie中,保存到redis中和cookie中逻辑步骤其实都是一样的 2 ...
- 微信小程序 - 商城项目 - 购物车
购物车页面布局 引入 WeUI: {"usingComponents": {"mp-cells": "weui-miniprogram/cells/c ...
- vue尚品汇商城项目-day04【29.加入购物车操作(难点)】
文章目录 29.加入购物车操作(难点) 29.1加入购物车按钮 29.2addCartSuce 29.3购物车 29.3.1 向服务器发送ajax请求,获取购物车数据 29.3.2UUID临时游客身份 ...
- 怎样设计一个商城项目?
这两天公司要做一个商城项目,网上搜了很多没找到完整的.有结构体系的资料,可能这件事本身并不难,但是对新手非常不友好,所以我借机把这些碎片化的资料尝试整理成一个有体系的资料,希望能对你有帮助.资料来源包 ...
- 基于SpringBoot + Vue的小程序商城项目(附源码),支持分销、团购、秒杀、优惠券。。。...
前些时候一直有粉丝让我分享带分销的商城项目,网上收集了一波,希望能帮到大家. 面向对象 该程序是企业在创立初期很好的技术基础框架,加快公司项目开发进度,当然也可以对现有的系统进行升级: 个人开发者也可 ...
- java代码实现购物车小程序_使用Taro实现小程序商城的购物车功能模块的实例代码...
Taro 是一套遵循 React 语法规范的 多端开发 解决方案. 现如今市面上端的形态多种多样,Web.React-Native.微信小程序等各种端大行其道,当业务要求同时在不同的端都要求有所表现的 ...
- python美多商城项目百度网盘_美多商城项目(七)
正文共: 7620字 4图 预计阅读时间: 20分钟 每日分享 If you can change your mind, you can change your life. 如果你愿意改变你的想法,你 ...
- django debug=false后静态文件丢失_python框架Django实战商城项目之工程搭建
项目说明 该电商项目类似于京东商城,主要模块有验证.用户.第三方登录.首页广告.商品.购物车.订单.支付以及后台管理系统. 项目开发模式采用前后端不分离的模式,为了提高搜索引擎排名,页面整体刷新采用j ...
- python开发商城实战_python框架Django实战商城项目之工程搭建
项目说明 该电商项目类似于京东商城,主要模块有验证.用户.第三方登录.首页广告.商品.购物车.订单.支付以及后台管理系统. 项目开发模式采用前后端不分离的模式,为了提高搜索引擎排名,页面整体刷新采用j ...
最新文章
- odoo开发笔记 -- 异常、错误、警告、提示、确认信息显示
- mysql数据库连接jar_mysql数据库连接包
- CNN+LSTM+CTC
- 无影云电脑居家办公最佳实践(AD域账号)
- CTime,Systemtime的比较还有转换成日期格式。
- [UOJ299][CTSC2017] 游戏
- mac版mysql 1290_Mac 终端下mysql load data infile 文件路径 into table 表名称 操作,[Error Code] 1290 - The MyS...
- 2021年JavaScript的发展前景如何呢?
- 洛谷 P2294 [HNOI2005]狡猾的商人
- 详解离线安装Python库
- php键盘输入函数,基础篇php常用输入语句和函数
- 泰安技师学院计算机专业,泰安技师学院有哪些系部和专业
- 御剑端口扫描工具2020下载
- 千呼万唤始出来 Google GDrive将于4月初正式推出
- 中英文字数统计以及信息熵的计算
- 软件工程学习参考书籍
- 微信公众平台对接C#-普通消息接收
- 小爱音箱怎么装app_小爱音箱app|小米AI音箱app(小米小爱app)下载 v1.2.11 安卓版 - 比克尔下载...
- pr图形模板预设怎么使用_PR怎样安装动态图形模板?怎样调用Mogrt预设?Premiere导入MOGRTs预设完整教程...
- ege函数库_ege图形库基本说明