求高手指教,怎样完成把购物车中几种商品分开添加到订单表中!
我要实现的功能就是和淘宝购物车的功能一样。当我查看购物车,假如里面有两件商品,当我去结算时,怎样在servlet中得到我的两样商品的信息并把得到的两样商品分开保存到数据库中的订单表中
这是通过servlet查询购物车信息的代码
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
HttpSession session=request.getSession();
//得到会员的编号
long cid=(Long)session.getAttribute("cid");
ShopCarManager sm=new ShopCarManagerImp();
ArrayList<ShopCar> s=new ArrayList<ShopCar>();
//通过会员编号去查询购物车
s=sm.select(cid);
session.setAttribute("shopcar", s);
response.sendRedirect("/Shopping/jiemian/showcar.jsp");
}
这是在JSP页面展示购物车信息的代码
<table width="725" border="1" cellpadding="0" cellspacing="0">
<tr><td>商品名</td><td>单价</td><td>数量</td> <td>尺码</td><td>颜色</td> <td>总价</td><td>删除</td></tr>
<%ArrayList<ShopCar> a=(ArrayList<ShopCar>)session.getAttribute("shopcar");
for(int i=0;i<a.size();i++){
ShopCar s=(ShopCar)a.get(i);
%>
<tr><td><%=s.getGoodsName() %></td>
<td><%=s.getGoodsUnitPrice()%></td>
<td> <input type="text" value="<%=s.getBuyNumber() %>" name="number"/></td>
<td></td>
<td></td>
<td><%=s.getGoodsTotalPrice() %></td>
<td><a>删除</a></td></tr>
<% }%>
<tr><td colspan="7">购物车里有商品:1 种 总数:1 件 共计:210 元 您有预存款: 元 </td></tr>
<tr><td colspan="3" align="right"><input type="button" value="修改数量"/></td>
<td colspan="2" align="center"><input type="button" value="清空购物车"/></td>
<td colspan="2"><input type="button" value="结算" onclick="f2.action='jiemian/buyerinfo.jsp';f2.submit()"/></td></tr>
</table>
------解决方案--------------------思路:用户选的第一件商品,你看作一条记录,如果多件商品,你就应该要用个购物车把它装起来
。
实现:
1、首先,你定义一个购物车类,一个装购物车的集合 如:ShopCart.java
里面大概有商品ID,商品价格,商品数量等
2、你定义一个用来存入用户所选的每件商品的集合 如:List<ShopCart> scList = new List<ShopCart>();
3、当客户每选一件商品,你就新建一个购物车类 如:ShopCart sc = new ShopCart();
然后把客户所选的商品信息保存到里面,
再把这个 封装好商品信息的 sc 存放到 集合中 如:scList.add(sc);
再把这个集合保存到 Session 中,
一直这样,直到用户选择好了所有商品,点结账下单
4、当客户点击 结账下单 ,你就可以把 Session 中存放的 scList 取出来,然后遍历它,取出每一个 sc 也就是客户所选购的商品,保存到数据库中
OK 了,有什么不明白的,可以留言…
有一篇关于购物车设计的文章,可能对你有帮助,你如果有兴趣,可以看一下
http://www.vscsoft.com/post/40.html