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");
%>
今天的代码就分享到这里啦~期待明天我带来的新知识吧~