zoukankan      html  css  js  c++  java
  • (二十二)查询订单的详情

    案例2-查询订单的详情
    需求:
        只有未付款的订单,点击"付款",跳转到订单的详情页面
    步骤分析:
        1.在订单列表,点击付款,
            /store/order?method=getById&oid=?
        2.在orderservlet中编写getById()
            接受oid
            调用service 返回Order
            将order放入域中,请求转发 order_info.jsp
        3.orderDao中 通过一个订单号,查询订单详情
            select * from orderitem oi,product p where oi.pid = p.pid and oi.oid = ?
            用mapListhandler封装结果集,然后使用BeanUtils封装成指定的bean对象 ,添加到order的items中即可
            

    /store/WebContent/jsp/order_list.jsp

                            <c:if test="${o.state==0 }">
                                                <a href="${pageContext.request.contextPath }/order?method=getById&oid=${o.oid}">付款</a>
                                            </c:if>
                                            <c:if test="${o.state==1 }">
                                                已付款
                                            </c:if>
                                            <c:if test="${o.state==2 }">
                                                <a href="#">确认收货</a>
                                            </c:if>
                                            <c:if test="${o.state==3 }">
                                                已完成
                                            </c:if>

    com.louis.web.servlet.OrderServlet

        public String getById(HttpServletRequest request, HttpServletResponse response) throws Exception {
            //1.获取oid
            String oid = request.getParameter("oid");
            
            //2.调用service 通过oid 返回值:order
            OrderService os=(OrderService) BeanFactory.getBean("OrderService");
            Order order=os.getById(oid);
            
            //3.将order放入request域中
            request.setAttribute("bean", order);
            
            return "/jsp/order_info.jsp";
        }

    com.louis.service.impl.OrderServiceImpl

        /**
         * 查看订单详情
         */
        @Override
        public Order getById(String oid) throws Exception {
            OrderDao od=(OrderDao) BeanFactory.getBean("OrderDao");
            return od.getById(oid);
        }

    com.louis.dao.impl.OrderDaoImpl

        /**
         * 通过oid 查询订单详情
         */
        @Override
        public Order getById(String oid) throws Exception {
            QueryRunner qr = new QueryRunner(DataSourceUtils.getDataSource());
            String sql="select * from orders where oid = ?";
            Order order = qr.query(sql, new BeanHandler<>(Order.class), oid);
            
            //封装orderitems
            sql="select * from orderitem oi,product p where oi.pid = p.pid and oi.oid = ?";
            List<Map<String, Object>> query = qr.query(sql, new MapListHandler(), oid);
            for (Map<String, Object> map : query) {
                //封装product
                Product product = new Product();
                BeanUtils.populate(product, map);
                
                //封装orderitem
                OrderItem oi = new OrderItem();
                BeanUtils.populate(oi, map);
                oi.setProduct(product);
                
                //将orderitem假如中order的items中
                order.getItems().add(oi);
            }
            return order;
        }

  • 相关阅读:
    PCA,到底在做什么
    论文笔记:Deep feature learning with relative distance comparison for person re-identification
    论文笔记:Cross-Domain Visual Matching via Generalized Similarity Measure and Feature Learning
    word2vec概述
    登录获取token,token参数关联至所有请求的请求体内
    pip安装库时报错,使用国内镜像加速
    python+unittest+requests+HTMLRunner编写接口自动化测试集
    python实现http get请求
    python实现以application/json格式为请求体的http post请求
    反编译apk
  • 原文地址:https://www.cnblogs.com/Michael2397/p/7670078.html
Copyright © 2011-2022 走看看