java网上图书商城(5)购物车模块2

 更新时间:2016年12月05日 11:34:19   转载 作者:ganchuanpu  
这篇文章主要为大家详细介绍了java网上图书商城,购物车模块第二篇,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

先看看效果:

结算

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,放到数组中
 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

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

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

<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>

相关文章

  • Default Methods实例解析

    Default Methods实例解析

    这篇文章主要介绍了Default Methods实例解析,介绍了默认方法的相关问题,以及与普通方法的区别,具有一定参考价值,需要的朋友可以了解下。
    2017-09-09
  • Mybatis 条件查询 批量增删改查功能

    Mybatis 条件查询 批量增删改查功能

    这篇文章主要介绍了mybatis 脚本处理语句之条件查询 批量增删改查功能,需要的的朋友参考下吧
    2017-06-06
  • Spring Mvc中传递参数方法之url/requestMapping详解

    Spring Mvc中传递参数方法之url/requestMapping详解

    在开发中,参数传递是必不可少的一个功能,下面这篇文章主要给大家介绍了关于Spring Mvc中传递参数方法之url/requestMapping的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-07-07
  • Java加载property文件配置过程解析

    Java加载property文件配置过程解析

    这篇文章主要介绍了java加载property文件配置过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • 最常用的1000个Java类(附代码示例)

    最常用的1000个Java类(附代码示例)

    这篇文章主要介绍了最常用的1000个Java类(附代码示例),需要的朋友可以参考下
    2015-04-04
  • Spring Boot启动过程(四)之Spring Boot内嵌Tomcat启动

    Spring Boot启动过程(四)之Spring Boot内嵌Tomcat启动

    这篇文章主要介绍了Spring Boot启动过程(四)之Spring Boot内嵌Tomcat启动的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-04-04
  • Jlabel实现内容自动换行简单实例

    Jlabel实现内容自动换行简单实例

    这篇文章主要介绍了Jlabel实现内容自动换行简单实例,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • Java连接Linux服务器过程分析(附代码)

    Java连接Linux服务器过程分析(附代码)

    这篇文章主要介绍了Java连接Linux服务器过程分析(附代码),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • 详解java调用存储过程并封装成map

    详解java调用存储过程并封装成map

    这篇文章主要介绍了详解java调用存储过程并封装成map的相关资料,希望通过本文能帮助到大家实现这样的功能,需要的朋友可以参考下
    2017-09-09
  • Java LinkedList集合功能实例解析

    Java LinkedList集合功能实例解析

    这篇文章主要介绍了Java LinkedList集合功能实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04

最新评论