删除购物车中的商品
实现功能:
用户点击购物车中购物项后面的删除将这个购物项删除,总计金额减去当前购物项小计。
cart.jsp
为删除链接增加onclick属性,并使用js实现delCart方法。
<td>
<a href="javascript:;" class="delete" onclick="delCart('${en.value.pro.pid}', '${en.value.subTotal}')">删除</a>
</td>
......
<script type="text/javascript">
function delCart(pid, money){
location.href="${pageContext.request.contextPath}/product?method=delCart&pid="+pid+"&money="+money;
}
</script>
ProductServlet.java
在ProductServlet.java的doGet方法中添加delCart的判断,并完成delCart方法。
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String method = request.getParameter("method");
if("getProById".equals(method)) {
getProById(request, response);
}else if("findListByCate".equals(method)) {
findListByCate(request, response);
}else if("cart".equals(method)) {
cart(request, response);
}else if("delCart".equals(method)) {
delCart(request, response);
}
}
public void delCart(HttpServletRequest request, HttpServletResponse response) {
// TODO Auto-generated method stub
try {
String pid = request.getParameter("pid");
String money = request.getParameter("money");
//获取购物车
HttpSession session = request.getSession();
Cart cart = (Cart) session.getAttribute("cart");
HashMap<String, CartItem> map = cart.getMap();
CartItem c = map.remove(pid);
double subTotal = c.getSubTotal();
//购物车金额-小计
cart.setSubMoney(cart.getSubMoney()-subTotal);
//返回购物车页面
request.getRequestDispatcher("/cart.jsp").forward(request, response);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}