最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java網(wǎng)上圖書商城(5)購物車模塊2

 更新時間:2016年12月05日 11:34:19   作者:ganchuanpu  
這篇文章主要為大家詳細介紹了java網(wǎng)上圖書商城,購物車模塊第二篇,具有一定的參考價值,感興趣的小伙伴們可以參考一下

先看看效果:

結(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());//把復選框的值添加到數(shù)組中
 });
 // 2. 把數(shù)組的值toString(),然后賦給表單的cartItemIds這個hidden
 $("#cartItemIds").val(cartItemIdArray.toString());
 // 把總計的值,也保存到表單中
 $("#hiddenTotal").val($("#total").text());
 // 3. 提交這個表單
 $("#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

加載多個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>單價</td>
   <td>數(shù)量</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="北京市 昌平區(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)文章

  • maven的升級版maven-mvnd的使用小結(jié)

    maven的升級版maven-mvnd的使用小結(jié)

    maven-mvnd是Maven的升級版,通過將構(gòu)建過程放在守護進程中,實現(xiàn)了更快的編譯速度和更低的內(nèi)存占用,下面就來介紹一下如何使用,感興趣的可以了解一下
    2025-01-01
  • 淺析java中String類型中“==”與“equal”的區(qū)別

    淺析java中String類型中“==”與“equal”的區(qū)別

    這篇文章主要介紹了淺析java中String類型中“==”與“equal”的區(qū)別,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • SpringBoot跨域問題的解決方法實例

    SpringBoot跨域問題的解決方法實例

    這篇文章主要給大家介紹了關(guān)于SpringBoot跨域問題的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-05-05
  • Springboot Thymeleaf數(shù)字對象使用方法

    Springboot Thymeleaf數(shù)字對象使用方法

    這篇文章主要介紹了Springboot Thymeleaf數(shù)字對象使用方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2007-09-09
  • Spring容器-BeanFactory和ApplicationContext使用詳解

    Spring容器-BeanFactory和ApplicationContext使用詳解

    這篇文章主要為大家介紹了Spring容器-BeanFactory和ApplicationContext的使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-04-04
  • Springboot基礎(chǔ)之RedisUtils工具類

    Springboot基礎(chǔ)之RedisUtils工具類

    本文來說下RedisUtils工具類,主要介紹了整合Redis、MyBatis,封裝RedisUtils工具類等知識,文中有非常詳細的代碼示例,對正在學習java的小伙伴們有很好的幫助,需要的朋友可以參考下
    2021-05-05
  • Java中的運算符你知道多少

    Java中的運算符你知道多少

    這篇文章主要為大家詳細介紹了Java中的運算符,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • Java SpringBoot的相關(guān)知識點詳解

    Java SpringBoot的相關(guān)知識點詳解

    這篇文章主要介紹了SpringBoot的相關(guān)知識點,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2021-10-10
  • Java異常處理Guava?Throwables類使用實例解析

    Java異常處理Guava?Throwables類使用實例解析

    這篇文章主要為大家介紹了Java異常處理神器Guava?Throwables類使用深入詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-12-12
  • Spark調(diào)優(yōu)多線程并行處理任務(wù)實現(xiàn)方式

    Spark調(diào)優(yōu)多線程并行處理任務(wù)實現(xiàn)方式

    這篇文章主要介紹了Spark調(diào)優(yōu)多線程并行處理任務(wù)實現(xiàn)方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-08-08

最新評論

汉中市| 小金县| 酒泉市| 锦屏县| 集贤县| 巍山| 荆门市| 东阳市| 海安县| 九龙县| 枞阳县| 永胜县| 二连浩特市| 思南县| 曲周县| 尤溪县| 民乐县| 屯门区| 平泉县| 理塘县| 葵青区| 鄂托克前旗| 罗城| 依安县| 小金县| 永吉县| 通化县| 固镇县| 常州市| 十堰市| 连江县| 水城县| 常宁市| 紫阳县| 隆德县| 新疆| 富民县| 广水市| 盐源县| 宁武县| 三原县|