购物车项目部分
基本界面(这边需要大家自己去邦值)
完善功能:今天我们完成加入购物车的功能
当我们点击加入购物车时我们需要跳转到逻辑页面,然后把商品编号传过去,根据id绑值
//里面实际内容根据自己实际项目来传值
//接收session List<User> lls=(List<User>)session.getAttribute("user"); //判断 if(lls==null){//没有登录 out.print("<script>alert('请先登录');location.href='login.jsp';</script>"); } else{ //字符规范 request.setCharacterEncoding("utf-8"); //拿到id String pid=request.getParameter("gid"); //调用方法用ssession传值 IGoodsBiz igb=new GoodsBiz(); Goods g=igb.getAll(Integer.parseInt(pid)); //订单项集合 //解决覆盖问题 //先那只 List<GoodsGl> ls=(List<GoodsGl>)session.getAttribute("goods"); if(ls==null){//没有拿到值 说明之前购物车是空的 ls=new ArrayList<GoodsGl>(); } //解决加同一商品重复问题 //循环遍历 boolean f=false;//假设该订单不存在 for(GoodsGl s:ls){ //说明存在 if(s.getSp().getGid()==Integer.parseInt(pid)){ //数量在原本的基础上加1 s.setSl(s.getSl()+1); //重新计算价格 s.cart(); f=true; break; } } if(f==false){ //形成一个订单项 GoodsGl gg=new GoodsGl(); gg.setSp(g);//商品 gg.setSl(1);//数量 gg.cart();//计算总价 //说明不存在 //把订单项放到集合放进去 ls.add(gg); } //用session传值 把集合存到session中 session.setAttribute("goods", ls); //重定向转发 response.sendRedirect("cart.jsp"); }
然后拿到集合进行绑值
<center> <table border="1px"> <tr> <td>商品序号</td> <td>商品名称</td> <td>商品价格</td> <td>商品描述</td> <td>商品图片</td> <td>商品数量</td> <td>商品总价</td> <td>操作</td> </tr> <% //session接收 List<GoodsGl> ls=(List<GoodsGl>)session.getAttribute("goods"); for(GoodsGl g:ls){ %> <tr align="center"> <td><%=g.getSp().getGid() %></td> <td><%=g.getSp().getGname() %></td> <td><%=g.getSp().getGprice() %></td> <td><%=g.getSp().getGinfo() %></td> <td><img src="<%=g.getSp().getGpath() %>"></td> <td><input onfocus="myj(Sting gid)" onblur="myk(String gid)" id="<%=g.getSp().getGid() %>" type="text" value="<%=g.getSl() %>"/></td> <td><%=g.getZj()%>元</td> <td> <a onclick="return confirm('你确定要删除吗')" href="dodelete.jsp?gid=<%=g.getSp().getGid() %>">删除</a> <input onclick="myf('<%=g.getSp().getGid()%>')" type="button" value="修改"> </td> </tr> <% } %> </table> <div> <a href="index.jsp">继续购物</a> <a href="bank.jsp">没钱了点这里</a> </div> </center> </body>
这样我们基本的加入购物车就已经完成