购物车逻辑
来源:互联网 发布:wps mac免费版 编辑:程序博客网 时间:2024/06/05 17:02
既然是购物车,自然需要一个购物车(cart):
购物车中有加入购物车,从购物车中删除,计算购物车中所有商品总价格的方法,我们在这里是将所有的商品放入到了一个map集合中
public class Cart { Map<String,Commodity> cartbean=new HashMap<String, Commodity>(); int num=0; public void savecommo(Commodity commodity){ if (!cartbean.containsKey(commodity.getId())){ commodity.setNum(1); cartbean.put(commodity.getId(),commodity); }else { Commodity commodity1 = cartbean.get(commodity.getId()); commodity1.setNum(commodity1.getNum()+1); } } //删除商品 public void delete(String id){ Commodity remove = cartbean.remove(id); } //计算总价格 public float price(){ float price=0; Collection<Commodity> values = cartbean.values(); for(Commodity c:values){ price =price + c.getPrice()*c.getNum(); } return price; } //前端页面提供查询购物车的中商品 public Map<String,Commodity> show(){ return cartbean; }}
首先需要前台展示:
但是在展示所有商品之前需要查询出全部商品:
/*读取所有的商品*/ @RequestMapping("findAllCommodity.do") @ResponseBody public List<Commodity> findAllCommodity(){ List<Commodity> findallcommodity = cd.findallcommodity(); return findallcommodity; }
读取到所有的商品信息之后回到前端展示:
<%@ page contentType="text/html;charset=UTF-8" language="java" %><%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><html><head> <title>Title</title> <link rel="stylesheet" href="css/icon.css"/> <link rel="stylesheet" href="css/easyui.css"/> <link rel="stylesheet" href="css/bootstrap.css"/> <script src="js/jquery.js"></script> <script type="text/javascript" src="js/easyui.js"></script> <script type="text/javascript" src="js/easyui-lang-zh_CN.js"></script> <script type="text/javascript" src="ckeditor/ckeditor.js"></script></head><body><div style="margin: 100px 100px;width: 80%"> <ul> <c:forEach items="${portal}" var="item"> <li class="list-group-item"> <span> ${item.name} </span> | <span> ${item.price} </span> | <span> <a href="toCart.do?id=${item.id}" class="btn btn-danger">购买</a> <%--<button class="btn btn-danger">购买</button>--%> </span> </li> </c:forEach> </ul></div></body></html>
之后用户选择商品加入购物车,加入购物车需要前端传递一个商品id给后台,在后台根据id获取该商品,将商品存放到map集合中,再将集合放入session中
@RequestMapping("toCart.do") public String addCart(String id,HttpSession session){ Commodity one = cd.findOne(id); Cart cart = (Cart) session.getAttribute("cart"); if (cart==null){ cart = new Cart(); cart.savecommo(one); }else { cart.savecommo(one); } session.setAttribute("cart",cart); return "redirect:cart.jsp"; }
按照正常的逻辑,加入购物车后需要来到购物车页面,该页面显示所有购物车中的商品
<%@ page contentType="text/html;charset=UTF-8" language="java" %><%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><html><head> <title>Title</title> <link rel="stylesheet" href="css/icon.css"/> <link rel="stylesheet" href="css/easyui.css"/> <link rel="stylesheet" href="css/bootstrap.css"/> <script src="js/jquery.js"></script> <script type="text/javascript" src="js/easyui.js"></script> <script type="text/javascript" src="js/easyui-lang-zh_CN.js"></script> <script type="text/javascript" src="ckeditor/ckeditor.js"></script> <script> function deletecatecom(id) { $.get("deletecatecommo.do",{idd:id},function (dd) { location.reload(true); }) } </script></head><body><div style="margin: 100px 100px;width: 80%"> <ul> <c:forEach items="${cart.show()}" var="item"> <li class="list-group-item"> <span> 商品名称: ${item.value.name} </span> | <span> 商品单价: ${item.value.price} </span> | <span> 购买数量: ${item.value.num} </span> <span> <a href="JavaScript:deletecatecom('${item.value.id}')" class="btn btn-danger" >删除</a> </span> </li> </c:forEach> <li class="list-group-item">总价:${cart.price()}</li> </ul></div></body></html>
到目前为止,一个简单的购物车基本上已经实现了,还有一个小功能,就是购物车的删除,从购物车中删除商品,这个相对来说是比较简单的,只需要传递一个id,根据id值将商品从map集合中删除即可
//删除购物车中的商品 @RequestMapping("deletecatecommo.do") @ResponseBody public String deletecatecom(String idd,HttpSession session){ Cart attribute = (Cart) session.getAttribute("cart"); attribute.delete(idd); return "success"; }
以上代码均由SSM环境下搭建
阅读全文
0 0
- 购物车实现逻辑
- TP 购物车逻辑
- 购物车 全选逻辑
- 购物车实现逻辑
- 购物车逻辑
- 购物车逻辑
- 购物车逻辑
- 购物车逻辑Angularjs
- 购物车简单逻辑
- 购物车简单逻辑
- 购物车逻辑
- 购物车逻辑
- 购物车逻辑
- 一级购物车逻辑
- 购物车实现逻辑【详解】
- 仿淘宝购物车逻辑
- 购物车实现逻辑【详解】
- 商城购物车逻辑思路
- CS Academy Round #44 A B C D
- MySQL分类汇总(group by...with rollup)统计时,如何显示“总计”字段?
- 环形数组删除问题
- iOS学习笔记-099.彩票14——设置3_UITableViewController基类提取
- nmap学习笔记
- 购物车逻辑
- ABAP系统变量(SY-系统值)
- 《 Effective Java》关于泛型,方法和枚举,注解的建议
- MapReduce中数据处理详解
- iOS学习笔记-100.彩票15——设置4_设置和推送提醒控制器创建
- SG 模板
- 整理遇到的一些unity旧版本代码更新到新版本引起的bug
- iOS学习笔记-101.彩票16——设置5_开奖推送和比分直播和空白的控制器创建
- Linux以守护线程的方式运行SpringBoot的项目