先看看效果:
结算
list.jsp
<a href="javascript:jiesuan();" id="jiesuan" class="jiesuan"></a>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
< form id = "jieSuanForm" action="<c:url value = '/CartItemServlet' />" method="post"> < input type = "hidden" name = "cartItemIds" id = "cartItemIds" /> < input type = "hidden" name = "total" id = "hiddenTotal" /> < input type = "hidden" name = "method" value = "loadCartItems" /> </ form > function jiesuan() { // 1. 获取所有被选择的条目的id,放到数组中 var cartItemIdArray = new Array(); $(":checkbox[name=checkboxBtn][checked=true]").each(function() { cartItemIdArray.push($(this).val());//把复选框的值添加到数组中 }); // 2. 把数组的值toString(),然后赋给表单的cartItemIds这个hidden $("#cartItemIds").val(cartItemIdArray.toString()); // 把总计的值,也保存到表单中 $("#hiddenTotal").val($("#total").text()); // 3. 提交这个表单 $("#jieSuanForm").submit(); } |
servlet
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
public String loadCartItems(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { /* * 1. 获取cartItemIds参数 */ String cartItemIds = req.getParameter("cartItemIds"); double total = Double.parseDouble(req.getParameter("total")); /* * 2. 通过service得到List<CartItem> */ List<CartItem> cartItemList = cartItemService.loadCartItems(cartItemIds); /* * 3. 保存,然后转发到/cart/showitem.jsp */ req.setAttribute( "cartItemList" , cartItemList); req.setAttribute( "total" , total); req.setAttribute( "cartItemIds" , cartItemIds); return "f:/jsps/cart/showitem.jsp" ; } |
Dao
加载多个CartItem
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
public List<CartItem> loadCartItems(String cartItemIds) throws SQLException { /* * 1. 把cartItemIds转换成数组 */ Object[] cartItemIdArray = cartItemIds.split(","); /* * 2. 生成wehre子句 */ String whereSql = toWhereSql(cartItemIdArray.length); /* * 3. 生成sql语句 */ String sql = "select * from t_cartitem c, t_book b where c.bid=b.bid and " + whereSql; /* * 4. 执行sql,返回List<CartItem> */ return toCartItemList(qr.query(sql, new MapListHandler(), cartItemIdArray)); } |
showitem.jsp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
< c:choose > < c:when test = "${empty cartItemList }" >嘻嘻~</ c:when > < c:otherwise > < form id = "form1" action="<c:url value = '/OrderServlet' />" method="post"> < input type = "hidden" name = "cartItemIds" value = "${cartItemIds }" /> < input type = "hidden" name = "method" value = "createOrder" /> < table width = "95%" align = "center" cellpadding = "0" cellspacing = "0" > < tr bgcolor = "#efeae5" > < td width = "400px" colspan = "5" >< span style = "font-weight: 900;" >生成订单</ span ></ td > </ tr > < tr align = "center" > < td width = "10%" > </ td > < td width = "50%" >图书名称</ td > < td >单价</ td > < td >数量</ td > < td >小计</ td > </ tr > < c:forEach items = "${cartItemList }" var = "cartItem" > < tr align = "center" > < td align = "right" > < a class = "linkImage" href="<c:url value = '/jsps/book/desc.jsp' />">< img border = "0" width = "54" align = "top" src="<c:url value = '/${cartItem.book.image_b }' />"/></ a > </ td > < td align = "left" > < a href="<c:url value = '/jsps/book/desc.jsp' />">< span >${cartItem.book.bname }</ span ></ a > </ td > < td >¥${cartItem.book.currPrice }</ td > < td >${cartItem.quantity }</ td > < td > < span class = "price_n" >¥< span class = "subtotal" >${cartItem.subtotal }</ span ></ span > </ td > </ tr > </ c:forEach > < tr > < td colspan = "6" align = "right" > < span >总计:</ span >< span class = "price_t" >¥< span id = "total" >${total }</ span ></ span > </ td > </ tr > < tr > < td colspan = "5" bgcolor = "#efeae5" >< span style = "font-weight: 900" >收货地址</ span ></ td > </ tr > < tr > < td colspan = "6" > < input id = "addr" type = "text" name = "address" value = "北京市 昌平区 西三旗 金燕龙办公楼1层 传智播客 张三爷" /> </ td > </ tr > < tr > < td style = "border-top-width: 4px;" colspan = "5" align = "right" > < a id = "linkSubmit" href = "javascript:$('#form1').submit();" >提交订单</ a > </ td > </ tr > </ table > </ form > </ c:otherwise > </ c:choose > |