上图就是购物车的主界面,商品展示界面
看看源代码
点击加入购物车可以进入我的购物车界面
可以对它进行修改和删除, 并且点击继续买买可以进入主界面,点击结算
一、doshop逻辑代码
<%
request.setCharacterEncoding("utf-8");
//接收gid
String gid = request.getParameter("gid");
//根据gid拿到对应的商品对象=查询单个
IGoodsBiz igb = new GoodsBiz();
Goods goods =igb.getGoodsByGid(gid);
/* //形成一个订单项
Item i = new Item();
//给对象赋值
i.setGoods(goods);
i.setSl(1);
i.calc(); */
//订单项集合
//解决覆盖问题
//先拿值
List<Item> ls =(List<Item>)session.getAttribute("mycart");
if(ls==null){//没拿到值 说明之前购物车是空的
ls = new ArrayList<Item>();
}
//int a=Integer.parseInt(gid);
//解决加同一商品重复问题
boolean f = false;//假设该商品不存在
//循环遍历
for(Item ii : ls){
//说明存在
if(ii.getGoods().getGid()==Integer.parseInt(gid)){
//数量在原本的基础上加1
ii.setSl(ii.getSl()+1);
ii.calc();//改变总价
f=true;
break;
}
}
if(f==false){//说明确实不存在
//形成一个订单项
Item i = new Item();
//给对象赋值
i.setGoods(goods);
i.setSl(1);
i.calc();
//把订单项加到集合中
ls.add(i);
}
//把集合存到session中
session.setAttribute("mycart", ls);
//跳转到购物车界面进行展示
response.sendRedirect("cart.jsp");
%><%
request.setCharacterEncoding("utf-8");
//接收gid
String gid = request.getParameter("gid");
//根据gid拿到对应的商品对象=查询单个
IGoodsBiz igb = new GoodsBiz();
Goods goods =igb.getGoodsByGid(gid);
/* //形成一个订单项
Item i = new Item();
//给对象赋值
i.setGoods(goods);
i.setSl(1);
i.calc(); */
//订单项集合
//解决覆盖问题
//先拿值
List<Item> ls =(List<Item>)session.getAttribute("mycart");
if(ls==null){//没拿到值 说明之前购物车是空的
ls = new ArrayList<Item>();
}
//int a=Integer.parseInt(gid);
//解决加同一商品重复问题
boolean f = false;//假设该商品不存在
//循环遍历
for(Item ii : ls){
//说明存在
if(ii.getGoods().getGid()==Integer.parseInt(gid)){
//数量在原本的基础上加1
ii.setSl(ii.getSl()+1);
ii.calc();//改变总价
f=true;
break;
}
}
if(f==false){//说明确实不存在
//形成一个订单项
Item i = new Item();
//给对象赋值
i.setGoods(goods);
i.setSl(1);
i.calc();
//把订单项加到集合中
ls.add(i);
}
//把集合存到session中
session.setAttribute("mycart", ls);
//跳转到购物车界面进行展示
response.sendRedirect("cart.jsp");
%>
二、session版删除
<%
//接收gid
String gid = request.getParameter("gid");
//拿到订单项集合
List<Item> ls =(List<Item>) session.getAttribute("mycart");
//循环遍历
for(Item i :ls){
if(i.getGoods().getGid()==Integer.parseInt(gid)){
//说明找到了移除
ls.remove(i);
break;
}
}
response.sendRedirect("cart.jsp");
%>
三、session版的修改
<%
//接收gid和num
String gid = request.getParameter("gid");
String num = request.getParameter("num");
//拿到订单项集合
List<Item> ls =(List<Item>) session.getAttribute("mycart");
//循环遍历
for(Item i :ls){
if(i.getGoods().getGid()==Integer.parseInt(gid)){
//说明找到了移除
i.setSl(Integer.parseInt(num));
i.calc();
break;
}
}
response.sendRedirect("cart.jsp");