java網(wǎng)上圖書商城(5)購物車模塊2
先看看效果:

結(jié)算
list.jsp
<a href="javascript:jiesuan();" id="jiesuan" class="jiesuan"></a>
<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,放到數(shù)組中
var cartItemIdArray = new Array();
$(":checkbox[name=checkboxBtn][checked=true]").each(function() {
cartItemIdArray.push($(this).val());//把復(fù)選框的值添加到數(shù)組中
});
// 2. 把數(shù)組的值toString(),然后賦給表單的cartItemIds這個(gè)hidden
$("#cartItemIds").val(cartItemIdArray.toString());
// 把總計(jì)的值,也保存到表單中
$("#hiddenTotal").val($("#total").text());
// 3. 提交這個(gè)表單
$("#jieSuanForm").submit();
}
servlet
public String loadCartItems(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
/*
* 1. 獲取cartItemIds參數(shù)
*/
String cartItemIds = req.getParameter("cartItemIds");
double total = Double.parseDouble(req.getParameter("total"));
/*
* 2. 通過service得到List<CartItem>
*/
List<CartItem> cartItemList = cartItemService.loadCartItems(cartItemIds);
/*
* 3. 保存,然后轉(zhuǎn)發(fā)到/cart/showitem.jsp
*/
req.setAttribute("cartItemList", cartItemList);
req.setAttribute("total", total);
req.setAttribute("cartItemIds", cartItemIds);
return "f:/jsps/cart/showitem.jsp";
}
Dao
加載多個(gè)CartItem
public List<CartItem> loadCartItems(String cartItemIds) throws SQLException {
/*
* 1. 把cartItemIds轉(zhuǎn)換成數(shù)組
*/
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. 執(zhí)行sql,返回List<CartItem>
*/
return toCartItemList(qr.query(sql, new MapListHandler(), cartItemIdArray));
}
showitem.jsp
<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>單價(jià)</td>
<td>數(shù)量</td>
<td>小計(jì)</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>總計(jì):</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="北京市 昌平區(qū) 西三旗 金燕龍辦公樓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>
相關(guān)文章
淺析java中String類型中“==”與“equal”的區(qū)別
這篇文章主要介紹了淺析java中String類型中“==”與“equal”的區(qū)別,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08
Springboot Thymeleaf數(shù)字對象使用方法
這篇文章主要介紹了Springboot Thymeleaf數(shù)字對象使用方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2007-09-09
Spring容器-BeanFactory和ApplicationContext使用詳解
這篇文章主要為大家介紹了Spring容器-BeanFactory和ApplicationContext的使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04
Springboot基礎(chǔ)之RedisUtils工具類
本文來說下RedisUtils工具類,主要介紹了整合Redis、MyBatis,封裝RedisUtils工具類等知識,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)java的小伙伴們有很好的幫助,需要的朋友可以參考下2021-05-05
Java SpringBoot的相關(guān)知識點(diǎn)詳解
這篇文章主要介紹了SpringBoot的相關(guān)知識點(diǎn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2021-10-10
Java異常處理Guava?Throwables類使用實(shí)例解析
這篇文章主要為大家介紹了Java異常處理神器Guava?Throwables類使用深入詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12
Spark調(diào)優(yōu)多線程并行處理任務(wù)實(shí)現(xiàn)方式
這篇文章主要介紹了Spark調(diào)優(yōu)多線程并行處理任務(wù)實(shí)現(xiàn)方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08

