0
点赞
收藏
分享

微信扫一扫

Web15——购物车项目(下)

罗子僧 2022-04-16 阅读 72
web前端

hello,家人们,我来啦,今天讲的是购物车项目下半段

这是这节课我们需要实现的类:

 

因为昨天的一些代码已经分享给大家了,所以今天接着昨天还没写完的代码继续往下敲啦~


今天要添加的是购物车操作界面,购物车删除功能,增加商品和减少商品功能,在输入框中修改商品的数量,退出功能,清除全部商品

Car.jsp(购物车操作界面)

<%@page import="com.zking.pojo.User"%>
<%@page import="com.zking.vo.CarItem"%>
<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html lang="zh">

<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="${pageContext.request.contextPath}/bootstrap-3.3.7-dist/css/bootstrap.css">
    <script src="${pageContext.request.contextPath}/bootstrap-3.3.7-dist/js/jquery-3.5.1.js"></script>
    <script src="${pageContext.request.contextPath}/bootstrap-3.3.7-dist/js/bootstrap.js"></script>
    <style>
        td:nth-child(4)::before,
        small {
            content: "$";
        }

        * {
            outline: none !important;
        }

        td,
        th {
            text-align: center;
        }

        input {
            text-align: center;
        }
    </style>
</head>
<%
  Object obj=session.getAttribute("user");
  if(obj==null){
	  response.sendRedirect("login.jsp");
	  return;
  }

%>

<body>
    <div class="jumbotron">
        <div class="container">
            <h1>欢迎光临🌌源星球购物车🛒</h1>
            <p>尊贵的<%=((User)obj).getUname() %></p>
            <p><a href="doExit.jsp" class="btn btn-warning">退出</a></p>
        </div>
    </div>

    <table class="table">
        <tr>
            <th>商品编号</th>
            <th>商品名称</th>
            <th>商品个数</th>
            <th>商品总价</th>
            <th>操作</th>
        </tr>
        <%
        int sum=0;
         List<CarItem> car=(List<CarItem>)session.getAttribute("car");
        for(CarItem carItem:car){
        	//每个购物条目都有自己的价格
        	sum+=carItem.getSum();
        %>
        <tr>
            <td style="line-height: 30.5px;"><%=carItem.getGoods().getId() %></td>
            <td style="line-height: 30.5px;"><%=carItem.getGoods().getName() %></td>
            <td>
                <div class="input-group" style="width: 120px;margin: auto;">
                    <span class="input-group-btn">
                        <a href="doUpdCar.jsp?id=<%=carItem.getGoods().getId()%>&type=0" class="btn btn-default" type="button">-</a>
                    </span>
                    <input type="number" onblur="location.href='doUpdCar.jsp?id=<%=carItem.getGoods().getId()%>&count='+this.value" value="<%=carItem.getCount() %>" class="form-control">
                    <span class="input-group-btn">
                        <a href="doUpdCar.jsp?id=<%=carItem.getGoods().getId()%>&type=1" class="btn btn-default" type="button">+</a>
                    </span>
                </div>
            </td>
            <td style="line-height: 30.5px;"><%=carItem.getSum() %></td>
            <td style="line-height: 30.5px;">
                <a href="doDelCar.jsp?id=<%=carItem.getGoods().getId() %>" class="btn btn-primary">删除</a>
            </td>
        </tr>
        <%
        }
        
        %>
    </table>

    <h1 class="alert alert-info">
        当前购物车总价
        <small><%=sum%></small>
        <a href="doClear.jsp" class="btn btn-danger">点我结算</a>
    </h1>
</body></html>

index.jsp首页(显示商品)

<%@page import="com.zking.pojo.Goods"%>
<%@page import="com.zking.biz.impl.GoodsBizImpl"%>
<%@page import="com.zking.biz.IGoodsBiz"%>
<%@page import="com.zking.pojo.User"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="${pageContext.request.contextPath}/bootstrap-3.3.7-dist/css/bootstrap.css">
    <script src="${pageContext.request.contextPath}/bootstrap-3.3.7-dist/js/jquery-3.5.1.js"></script>
    <script src="${pageContext.request.contextPath}/bootstrap-3.3.7-dist/js/bootstrap.js"></script>
    <style>

        td:nth-child(3)::before{
            content: "$";
        }

    </style>
</head>

<body>
<%
  Object obj=session.getAttribute("user");
  if(obj==null){
	  response.sendRedirect("login.jsp");
	  return;
  }

%>
    <div class="jumbotron">
        <div class="container">
            <h1>欢迎光临 🌌源星球SuperMarket</h1>
            <p>尊贵的<%=((User)obj).getUname() %></p>
            <p><a href="Car.jsp" class="btn btn-primary">🛒</a></p>
            <p><a href="doExit.jsp" class="btn btn-warning">退出</a></p>
        </div>
    </div>
    <table class="table">
        <tr>
            <th>商品序号</th>
            <th>商品名称</th>
            <th>商品单价</th>
            <th>商品描述</th>
            <th>商品图片</th>
            <th>操作</th>
        </tr>
        <%
        IGoodsBiz goodsBiz=new GoodsBizImpl();
        for(Goods goods:goodsBiz.getAll()){
        %>
        <tr>
            <td><%=goods.getId() %></td>
            <td><%=goods.getName()%></td>
            <td><%=goods.getPrice()%></td>
            <td><%=goods.getInfo()%></td>
            <td><img src="" alt=""></td>
            <td>
                <div class="btn-group btn-group-xs">
                    <button class="btn btn-primary"><span class="glyphicon glyphicon-tags"></span></button>
                          <%--链接这里需要带id过去 --%>
                    <a href="doAddCar.jsp?id=<%=goods.getId()%>" class="btn btn-primary">添加购物车</a> 
                </div>
            </td>
        </tr>
        <%
        }
        %>
    </table>
</body></html>

效果图展示:

 

doUpdCar.jsp(处理修改商品数量的功能)

<%@page import="com.zking.vo.CarItem"%>
<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>

<%
//接收类型,为1还是0
String type = request.getParameter("type");

List<CarItem> car = (List<CarItem>) session.getAttribute("car");
Integer id = Integer.parseInt(request.getParameter("id"));

//查出對應的條目
CarItem i=null;
for (CarItem item : car) {
	if (item.getGoods().getId() == id) {
		i=item;
		break;
	}
 }

if(type!=null){
//去修改购物车中对应的选项
i.setCount(i.getCount() + (type.equals("0") ? -1 : 1));
}
else{
	i.setCount((int)Double.parseDouble(request.getParameter("count")==null?"1":request.getParameter("count")));
}
i.setCount(i.getCount() > 0 ? i.getCount() : 1);
i.setSum(i.getCount() * i.getGoods().getPrice());//重新計算

//更新購物車
session.setAttribute("car",car);

//返回購物車主頁
response.sendRedirect("Car.jsp");


%>

doDelCar.jsp(处理删除商品的功能)

<%@page import="java.util.List"%>
<%@page import="com.zking.vo.CarItem"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
List<CarItem> car=(List<CarItem>)session.getAttribute("car");
  
//获得商品的id
Integer id=Integer.parseInt(request.getParameter("id"));

//去删除购物车中对应的选项
for(CarItem item:car){
	if(item.getGoods().getId()==id){
		car.remove(item);
		break;//如果不加break,foreach循坏会报错,用if不会报错
	}
}

//更新购物车
session.setAttribute("car",car);

//跳回购物车页面
response.sendRedirect("Car.jsp");



%>

doClear.jsp*(清理购物车的功能)

<%@page import="com.zking.vo.CarItem"%>
<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%

List<CarItem> car=(List<CarItem>)session.getAttribute("car");
car.clear();//直接清除购物车的数据


//更新购物车
session.getAttribute("car");
System.out.println(car);

//回到购物车界面
response.sendRedirect("Car.jsp");

%>

doExit.jsp(退出操作)

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
session.invalidate();//让session失效
response.sendRedirect("login.jsp");

%>


今天的代码就分享到这里啦~期待明天我带来的新知识吧~

举报

相关推荐

购物车项目(一)

session购物车项目1.0

JavaScript购物车

jquery购物车

mvc购物车

0 条评论