实现提交订单的功能

根据购物车中的商品名称和数量生成了结算信息,并可以填写收货人姓名、联系电话和收货地址,本任务将实现提交订单的功能。

 一、创建订单页面order.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@taglib prefix="p" uri="http://www.itcast.cn/tag"%>


电子书城

首页    >    购物车    >    订单

你好,${user.username}!欢迎您来到网上书城结算中心

序号商品名称价格类别数量小计
${vs.count}${entry.key.name }${entry.key.price }${entry.key.category}${entry.key.price*entry.value}
合计:  ${totalPrice}元

收货地址:    
收货人:        
联系方式:    


二、创建CreateOrderServlet

//生成订单
public class CreateOrderServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {// 1.得到当前用户HttpSession session = request.getSession();User user = (User) session.getAttribute("user");// 2.从购物车中获取商品信息Map cart = (Map)session.getAttribute("cart");// 3.将数据封装到订单对象中Order order = new Order();try {BeanUtils.populate(order, request.getParameterMap());} catch (IllegalAccessException e) {e.printStackTrace();} catch (InvocationTargetException e) {e.printStackTrace();}order.setId(IdUtils.getUUID());// 封装订单idorder.setUser(user);// 封装用户信息到订单.for (Product p : cart.keySet()) {OrderItem item = new OrderItem();item.setOrder(order);item.setBuynum(cart.get(p));item.setP(p);order.getOrderItems().add(item);}System.out.println(order);// 4.调用service中添加订单操作.OrderService service = new OrderService();service.addOrder(order);
//		request.getRequestDispatcher("/client/orderlist.jsp").forward(request, response);response.sendRedirect(request.getContextPath() + "/client/createOrderSuccess.jsp");}}

需要注意的是,在进行生成订单时,不仅需要把订单信息保存到订单表,还需要将订单项保存到订单条目表,并且修改商品表中该商品的库存数量。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部