商城项目购物车的实现

商城项目购物车的实现

@

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

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

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

public class Cart implements java.io.Serializable{

private Shangpin shangpin;//存放商品实体类的

private Integer number;//商品数量

//setter和getter方法省略

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

//购物车,把id参数传到后台controller

function 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 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 cartMap=(Map)session.getAttribute("cartMap");

//第一次添加商品到购物车

if(cartMap==null){

cartMap=new HashMap();//实例化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 cartMap =(Map)session.getAttribute("cartMap");

model.addAttribute("carList",cartMap);

return "udai_shopcart";

}

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

//这里删除按钮可获得对应的id,具体删除就是删除对应session中的键值对就可以了。

商品信息 单价 数量 现价 操作

![在这里插入图片描述]()

颜色分类:

尺码:

¥20.0

删除

五,补充说明

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

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

${list.value.shangpin.name}

效果如图

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

相关文章

私服魔域秒孵宝宝核心技巧与实战指南 365会提款不成功吗

私服魔域秒孵宝宝核心技巧与实战指南

📅 07-12 👁️ 5550
剧情游戏有哪些好玩 高人气剧情游戏盘点 彩票365软件是什么样的

剧情游戏有哪些好玩 高人气剧情游戏盘点

📅 07-11 👁️ 867
三星a8和note4哪个好? 彩票365软件是什么样的

三星a8和note4哪个好?

📅 08-19 👁️ 1553