Java Web 网络商城案例演示十五 订单详情功能(提交订单支付界面)
发布日期:2021-06-29 15:01:23 浏览次数:3 分类:技术文章

本文共 4036 字,大约阅读时间需要 13 分钟。

订单详情功能(提交订单支付界面)

原理分析

在这里插入图片描述

步骤实现:

1、准备工作:order_list.jsp当中修改链接

提交当前订单编号

付款

在这里插入图片描述

2、OrderServlet —> findOrderByOid

获取订单的oid

调用业务层功能;根据订单编号查询订单信息
将订单放入request当中
转发到/jsp/order_info.jsp

OrderServlet当中实现该方法

// findOrderByOid	public String findOrderByOid(HttpServletRequest request, HttpServletResponse response)			throws ServletException, IOException, SQLException {
//获取对应订单的oid String oid = request.getParameter("oid"); //调用业务层功能:根据订单编号查询订单信息 OrderService orderService = new OrderServiceImpl(); Order order = null; try {
order = orderService.findOrderByOid(oid); } catch (Exception e) {
// TODO Auto-generated catch block e.printStackTrace(); } //将订单放入到request当中 request.setAttribute("order", order); //转发到/jsp/order_info.jsp return "/jsp/order_info.jsp"; }

3、OrderService<->OrderServiceImpl

OrderService

Order findOrderByOid(String oid)throws Exception;

OrderServiceImpl

@Override	public Order findOrderByOid(String oid) throws Exception {
OrderDao orderDao = new OrderDaoImpl(); return orderDao.findOrderByOid(oid); }

4、OrderDao<->OrderDaoImpl

OrderDao

Order findOrderByOid(String oid)throws Exception;

OrderDaoImpl

根据订单oid查询订单下所有的订单项以及订单项关联的商品

@Override	public Order findOrderByOid(String oid) throws Exception {
// 根据订单oid查询订单以及对应的订单项,返回订单,其订单包括订单以及订单项的集合 String sql = "select * from orders where oid = ?"; QueryRunner qr = new QueryRunner(JDBCUtils.getDataSource()); Order order = qr.query(sql, new BeanHandler
(Order.class), oid); // 根据订单的id 查询订单下所有订单项以及所有的订单对应的商品信息 sql = "select * from orderitem o,product p where o.pid=o.pid where and oid = ?"; List
> list02 = qr.query(sql, new MapListHandler(), oid);// 获取到的是笛卡尔集的所有对应的商品集合 // 遍历list集合 for (Map
map : list02) {
// 实例化 OrderItem orderItem = new OrderItem(); Product product = new Product(); // 由于BeanUtlis将字符串“1992-3-3”向user对象的setBithday();方法传递参数有问题,手动向BeanUtils注册一个时间类型转换器 // 1、创建时间类型的转换器 DateConverter dt = new DateConverter(); // 2、设置转换的格式 dt.setPattern("yyyy-MM-dd"); // 3、注册转换器 ConvertUtils.register(dt, Date.class);// 将Date对象设置为dt当中的格式 try {
// 将map中属于orderItem的数据自动填充到orderItem对象上 BeanUtils.populate(orderItem, map); // 将map中属于product的数据自动填充到product对象上 BeanUtils.populate(product, map); // 让每一个订单项和商品项发生关系 orderItem.setProduct(product);// 将商品项当中的内容放到订单项当中 order.getList().add(orderItem);// 将订单项放到订单当中的list集合当中 } catch (IllegalAccessException e) {
// TODO Auto-generated catch block e.printStackTrace(); } catch (InvocationTargetException e) {
// TODO Auto-generated catch block e.printStackTrace(); } } return order; }

在这里插入图片描述

在这里插入图片描述
5、/jsp/order_info.jsp
开发中:多个功能对应同一个jsp页面,为了提供代码的复用率,所有的功能在向同一个jsp页面转发的时候,向request当中存入相同的数据(属性名一致)request.setAttribute(name,obj);

<%@ page language="java" contentType="text/html; charset=UTF-8"  pageEncoding="UTF-8"%><%@ taglib uri="http://java.sun.com/jsp/jstl/core"  prefix="c"%>			
下订单
<%@include file="/jsp/header.jsp" %>
订单详情
订单编号:${ order.oid }
图片 商品 价格 数量 小计
${ item.product.pname} ${ item.product.shop_price} ${ item.quantity} ${ item.total}
商品金额:
¥${
order.total }元


选择银行:

工商银行      中国银行      农业银行
交通银行      平安银行      建设银行
光大银行      招商银行



<%@include file="footer.jsp" %>

在这里插入图片描述

转载地址:https://code100.blog.csdn.net/article/details/105180850 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Java Web 网络商城案例演示十六 订单详情功能(支付功能的实现使用易付宝)
下一篇:Java Web 网络商城案例演示十四(设计订单表)

发表评论

最新留言

不错!
[***.144.177.141]2024年05月01日 22时43分18秒