今天我们来完成昨天未完成的订单结算和查看订单部分吧
老样子我们先看看效果图吧
可以看到当前我们是有商品的,当我们点击订单结算时
当我们点击查看订单时,我们会看到之前购买过的商品总价
点击查看详情,我们可以看到一次买的所有商品
一、订单结算
需要的数据
- 购物车数据
- 用户id
但是他们都在session里面,所以我们在跳转页面的时候是不需要带的
那么什么是订单结算嘞?
就是将购物车数据添加到订单表和订单项表之中
怎么制作订单结算呢?
从购物车跳转calc.do(这是路径,实际我们需要写一个实现这个功能的类——CalcServlet.java)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html><head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<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>
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>我的购物车</title>
</head>
<body>
<div class="container">
<h1>
${user.account} 您好, <small>这是购物车</small>
</h1>
<h1>
<a href="index.do" class="btn btn-default">继续购买</a>
<a href="calc.do" class="btn btn-default">订单结算</a>
<a href="order.do" class="btn btn-default">查看订单</a>
<a href="clear.do" class="btn btn-default">清空🛒</a>
</h1>
<table class="table table-bordered table-striped">
<tbody><tr>
<th>商品编号</th>
<th>商品名称</th>
<th>商品数量</th>
<th>商品总价</th>
<th>商品操作</th>
</tr>
<c:forEach items="${car }" var="item">
<tr>
<td>${item.goods.id }</td>
<td>${item.goods.name}</td>
<td>${item.quantity }</td>
<td>${item.total}</td>
<td>
<a href="del.do?id=${item.goods.id }" class="btn btn-default">删除</a>
<a href="upd.do?id=${item.goods.id }&type=1" class="btn btn-default">+1</a>
<a href="upd.do?id=${item.goods.id }&type=-1" class="btn btn-default">-1</a>
</td>
</tr>
</c:forEach>
</tbody></table>
<h1>
total:${total }
</h1>
</div>
</body></html>
先创建一个订单实体类(Order)和订单项实体类(OrderItem)
package com.zking.pojo;
public class Order {
private Integer id;
private Integer userId;
private Integer total;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getUserId() {
return userId;
}
public void setUserId(Integer userId) {
this.userId = userId;
}
public Integer getTotal() {
return total;
}
public void setTotal(Integer total) {
this.total = total;
}
public Order(Integer id, Integer userId, Integer total) {
super();
this.id = id;
this.userId = userId;
this.total = total;
}
public Order() {
// TODO Auto-generated constructor stub
}
@Override
public String toString() {
return "Order [id=" + id + ", userId=" + userId + ", total=" + total + "]";
}
}
package c