一.商城首页的实现
<%@page import="com.zking.goods.entity.Goods"%>
<%@page import="java.util.List"%>
<%@page import="com.zking.goods.biz.IGoodsBiz"%>
<%@page import="com.zking.goods.biz.impl.GoodsBizImpl"%>
<%@page import="com.zking.goods.entity.Users"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<!-- 通过session默认保存一个用户 -->
<%
Users users = new Users(1,"zz","123",1,1000);
//存储到session
session.setAttribute("users", users);
%>
<h3>zz购物商城首页</h3>
<% Users u = (Users)session.getAttribute("users"); %>
<p>欢迎您!<%=u.getCname() %></p>
<table border ="1" width = "70%">
<tr>
<th>编号</th>
<th>名称</th>
<th>价格</th>
<th>描述</th>
<th>图片</th>
<th>操作</th>
</tr>
<%
//调用biz层显示所有的数据
IGoodsBiz igb = new GoodsBizImpl();
//调用查询所有的方法
List<Goods> listGoods = igb.queryGoodsAll();
for(Goods goods:listGoods){
%>
<tr>
<td><%=goods.getGid() %></td>
<td><%=goods.getGname() %></td>
<td><%=goods.getGprice() %></td>
<td><%=goods.getGinfo() %></td>
<td><img src = "<%=goods.getGpath()%>"/></td>
<td>
<button onclick="addCart(<%=goods.getGid()%>)">加入购物车</button>
</td>
</tr>
<%
}
%>
</table>
<script type="text/javascript">
//加入购物车的点击事件
function addCart(cid){
//alert(cid)
location.href = "doShopping.jsp?cid="+cid;
}
</script>
</body>
</html>
二.商品加入购物车
<%@page import="java.util.List"%>
<%@page import="com.zking.goods.entity.Cart"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h2>我的购物车</h2>
<a href = "index.jsp">返回首页</a>
<hr/>
<table border ="1" width = "70%">
<tr>
<th>编号</th>
<th>名称</th>
<th>价格</th>
<th>图片</th>
<th>数量</th>
<th>总价格</th>
<th>操作</th>
</tr>
<%
//获取购物车
//Cart cart = (Cart)session.getAttribute("cart");
List<Cart> listCarts = (List<Cart>)session.getAttribute("listCarts");
//定义一个页码
int pageIndex = 1;
//定义一个变量存储每页显示的条数
int pageSize = 4;
//当用户点击了下一页 获取到下一页超链接上的参数
String pIndex= request.getParameter("pageIndex");
if(pIndex!=null){
pageIndex = Integer.valueOf(pIndex);
}
//定义一个变量存储总记录数
int pageCount = listCarts.size();
System.out.println("总记录数: "+pageCount);
//pageIndex = 1 0-3 0 1 2 3
//pageIndex = 2 4-7 4 5 6 7
int start = (pageIndex-1)*pageSize;
//sublist 参数end 没有等于
int end = pageIndex*pageSize;
if(end > pageCount){
end = pageCount;
}
int pageMax = pageCount/pageSize;
if(pageCount%pageSize!=0){
pageMax++;
}
//调用伪分页的方法 subList(start,end);
listCarts = listCarts.subList(start,end);
for(Cart cart : listCarts){
%>
<tr id = "<%=cart.getGoods().getGid()%>">
<td><%=cart.getGoods().getGid() %></td>
<td><%=cart.getGoods().getGname() %></td>
<td><%=cart.getGoods().getGprice() %></td>
<td><img src = "<%=cart.getGoods().getGpath() %>"/></td>
<td>
<button onclick="add('a',<%=cart.getGoods().getGid()%>)">-</button>
<input type = "text" style ="width:40px" value = "<%=cart.getCcount() %>"/>
<button onclick="add('b',<%=cart.getGoods().getGid()%>)">+</button>
</td>
<td><%=cart.getCtotal() %></td>
<td>
<button onclick="delCart(<%=cart.getGoods().getGid()%>)">删除</button>
<button onclick="updateCart(<%=cart.getGoods().getGid()%>)">修改</button>
</td>
</tr>
<%
}
%>
</table>
</body>
</html>
三.购物车页面的分页显示
<!-- 购物车页面实现分页 -->
<!-- 每一页现实的商品条数4条 -->
<p>
[<%=pageIndex %>/<%=pageMax %>]
<a href = "cart.jsp?pageIndex=1">首页</a>
<a href = "cart.jsp?pageIndex=<%=pageIndex-1<0?1:pageIndex-1%>">上一页</a>
<a href = "cart.jsp?pageIndex=<%=pageIndex+1>pageMax?pageMax:pageIndex+1%>">下一页</a>
<a href="cart.jsp?pageIndex=<%=pageMax%>">尾页</a>
</p>
<script type="text/javascript">
function delCart(id){
if(window.confirm("您确定要删除吗?")){
location.href="doDel.jsp?gid="+id;
}
}
function add(type,id){
//根据参数id获取tr标签
var tr = document.getElementById(id);
//console.log(tr)
//根据tr获取数量
var ccount = tr.cells[4].children[1].value;
console.log(ccount);
if(type === 'a'){//减法
ccount--;
}else if(type==='b'){//加法
ccount++;
}
tr.cells[4].children[1].value = ccount;
}
function updateCart(id){
//根据id获取到数量
var tr = document.getElementById(id);
var ccount = tr.cells[4].children[1].value;
//console.log(ccount);
location.href="doUpdate.jsp?gid="+id+"&ccount="+ccount;
}
</script>
四.删除|修改功能
//删除的do处理页面
<%@page import="java.util.Iterator"%>
<%@page import="com.zking.goods.entity.Cart"%>
<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
String id = request.getParameter("gid");
int cid = 0;
if(null!=id){
cid = Integer.valueOf(id);
}
//获取购物车
List<Cart> listCarts = (List<Cart> )session.getAttribute("listCarts");
System.out.println(listCarts);
/* for(int i = 0;i<listCarts.size();i++){
if(cid == listCarts.get(i).getGoods().getGid()){
listCarts.remove(i);
}
} */
//迭代器的方式进行删除
Iterator<Cart> its = listCarts.iterator();
while(its.hasNext()){
Cart cc = its.next();
//its.remove();
if(cc.getGoods().getGid() == cid){
its.remove();
}
}
session.setAttribute("listCarts", listCarts);
response.sendRedirect("cart.jsp");
%>
//修改的do处理页面
<%@page import="com.zking.goods.entity.Cart"%>
<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
String id1 = request.getParameter("gid");
String id2 = request.getParameter("ccount");
int gid = 0;
if(id1!=null){
gid = Integer.valueOf(id1);
}
int ccount = 0;
if(id2!=null){
ccount = Integer.valueOf(id2);
}
//获取购物车
List<Cart> listCarts = (List<Cart> )session.getAttribute("listCarts");
for(Cart c:listCarts){
if(c.getGoods().getGid() == gid){
c.setCcount(ccount);
c.setCtotal();
}
}
session.setAttribute("listCarts", listCarts);
response.sendRedirect("cart.jsp");
%>