购物车商品的操作
在商品详情页面上,输入购买的数量,点击加入购物车,在购物车页面上展示里面所有的商品
分析:
涉及的实体:
购物车 购物车项 商品
购物车中的内容
购物车项的map集合(map<商品的id,购物车项>)
总金额
add2Cart(购物车项)
removeFromCart(String 商品的id)
clearCart()
购物项中的内容
商品对象
购买数量
小计
步骤分析:
1.商品详情页面,输入购买的数量,点击加入购物车
/store/cart?method=add&pid=??&count=??
2.在cartservlet中的add方法操作
先获取两个参数 pid 和 count
调用ProductService 通过id获取一个商品
拼装CartItem
Product--查询出来
count--传递过来了
suctotal--计算
3.获取购物车,调用add2Cart(cartitem)
4.页面跳转
重定向 /jsp/cart.jsp
案例2-对购物车进行操作(删除)
步骤分析:
1.在购物车页面上,点击删除
/store/cart?method=remove&pid=??
2.在cartServlet中编写remove
先获取商品的pid
获取购物车
删除购物车项
3.重定向到/jsp/cart.jsp
案例3-对购物车进行操作(清空购物车)
步骤分析:
1.在购物车页面上,有一个清空购物车的连接
/store/cart?method=clear
2.在cartServlet中需要提供 clear
先获取购物车
调用Clearcart方法
重定向 jsp/cart.jsp页面
3.判断购物车是否为空,
若为空:提示购物车空空如也
若不为空:展示
-------------------------------------------------------------------------------------------------------
cart.jsp
<%@ 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 charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>会员登录</title>
<link rel="stylesheet"
href="${pageContext.request.contextPath}/css/bootstrap.min.css"
type="text/css" />
<script src="${pageContext.request.contextPath}/js/jquery-1.11.3.min.js"
type="text/javascript"></script>
<script src="${pageContext.request.contextPath}/js/bootstrap.min.js"
type="text/javascript"></script>
<!-- 引入自定义css文件 style.css -->
<link rel="stylesheet"
href="${pageContext.request.contextPath}/css/style.css" type="text/css" />
<style>
body {
margin-top: 20px;
margin: 0 auto;
}
.carousel-inner .item img {
width: 100%;
height: 300px;
}
.container .row div {
/* position:relative;
float:left; */
}
font {
color: #3164af;
font-size: 18px;
font-weight: normal;
padding: 0 10px;
}
</style>
</head>
<body>
<!-- 静态包含 -->
<%@include file="/jsp/head.jsp"%>
<div class="container">
<c:if test="${empty cart.map }">
<h1>购物车空空,快去买东西</h1>
</c:if>
<c:if test="${not empty cart.map }">
<div class="row">
<div style="margin: 0 auto; margin-top: 10