草庐IT

学习笔记——书城项目之“我的订单”功能

isDaHua 2023-04-17 原文

2023-01-07

一、“我的订单”功能

(1)找到“我的订单”的位置

①购物车页面Cart.html中的第26行

②结算完成页面Checkout.html中的第45行

将两个位置中超链接的“href”改变设置,写为

<a href="order?flag=showOrders">我的订单</a>

(2)在src文件夹下的“com.hh.servlet.model”中的“OrderServlet”类中创建“showOrders”方法

(3)在src下的“com.hh.service”中的“OrderService”接口中创建方法

//根据用户的id找订单信息
List<Order> findAllOrder(Integer userId);

(4)在src下的“com.hh.service.impl”中的“OrderServiceImpl”实现类对刚刚设置的抽象方法进行实现

(5)在src下的“com.hh.dao”中的“OrderDao”接口中设置方法

List<Order> findAllOrder(Integer userId);

和“OrderService”接口中的方法一样。

(6)在src下的“com.hh.dao.impl”中的“OrderDaoImpl”类中对OrderDao”接口中的抽象方法进行实现

@Override
    public List<Order> findAllOrder(Integer userId) {
        String sql="select order_id orderId,order_sequence orderSequence,create_time createTime,total_count totalCount,total_amount totalAmount,order_status orderStatus,user_id userId from t_order where user_id=?";
        return this.getList(Order.class,sql,userId);
    }

此处主要写sql语句,与数据库进行连接。

(7)OrderServiceImpl中的"createOrder"方法

@Override
public List<Order> findAllOrder(Integer userId) {
     return orderDao.findAllOrder(userId);
}

(7)在“OrderServlet”中的“showOrders”方法

    protected void showOrders(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //1.获得当前登录人的对象(根据当前登录人的id值去数据查询)
        User user = (User)request.getSession().getAttribute("user");
        //2.调用业务层处理业务
        List<Order> allOrder = orderService.findAllOrder(user.getId());
        //3.给响应
        request.setAttribute("orders",allOrder);
        this.processTemplate("order/order",request,response);
    }

(8)在web下的“WEB-INF”的“order”中的“order.html”中进行渲染

设置命名空间、base标签

<html lang="en" xmlns:th="http://www.thymeleaf.org">
<base th:href="@{/}">

将“../../../”使用“”替换,使用快捷键“ctrl+r”

  <tbody>
            <tr th:each="order,status : ${orders}">
              <td th:text="${order.orderSequence}">12354456895</td>
              <td th:text="${order.createTime}">
                2015.04.23
              </td>
              <td th:text="${order.totalCount}">90.00</td>
              <td th:text="${order.totalAmount}">88</td>
              <td>
                <a href="" class="send" th:if="${order.orderStatus==0}">等待发货</a>
                <a href="" class="send" th:if="${order.orderStatus==1}">已发货</a>
                <a href="" class="send" th:if="${order.orderStatus==2}">确认收货</a>
              </td>
              <td><a href="">查看详情</a></td>
            </tr>
  </tbody>

 (9)在刷新服务器后,先登陆后“转到主页”,之后将一些图书加入购物车后,点击“购物车”图标,之后点击“去结算”。点击右上角“我的订单”,如果出现订单号,那么代码OK

有关学习笔记——书城项目之“我的订单”功能的更多相关文章

  1. ruby - 如何在 buildr 项目中使用 Ruby 代码? - 2

    如何在buildr项目中使用Ruby?我在很多不同的项目中使用过Ruby、JRuby、Java和Clojure。我目前正在使用我的标准Ruby开发一个模拟应用程序,我想尝试使用Clojure后端(我确实喜欢功能代码)以及JRubygui和测试套件。我还可以看到在未来的不同项目中使用Scala作为后端。我想我要为我的项目尝试一下buildr(http://buildr.apache.org/),但我注意到buildr似乎没有设置为在项目中使用JRuby代码本身!这看起来有点傻,因为该工具旨在统一通用的JVM语言并且是在ruby中构建的。除了将输出的jar包含在一个独特的、仅限ruby​​

  2. ruby-on-rails - 项目升级后 Pow 不会更改 ruby​​ 版本 - 2

    我在我的Rails项目中使用Pow和powifygem。现在我尝试升级我的ruby​​版本(从1.9.3到2.0.0,我使用RVM)当我切换ruby​​版本、安装所有gem依赖项时,我通过运行railss并访问localhost:3000确保该应用程序正常运行以前,我通过使用pow访问http://my_app.dev来浏览我的应用程序。升级后,由于错误Bundler::RubyVersionMismatch:YourRubyversionis1.9.3,butyourGemfilespecified2.0.0,此url不起作用我尝试过的:重新创建pow应用程序重启pow服务器更新战俘

  3. ruby-on-rails - 新 Rails 项目 : 'bundle install' can't install rails in gemfile - 2

    我已经像这样安装了一个新的Rails项目:$railsnewsite它执行并到达:bundleinstall但是当它似乎尝试安装依赖项时我得到了这个错误Gem::Ext::BuildError:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcheckingforlibkern/OSAtomic.h...yescreatingMakefilemake"DESTDIR="cleanmake"DESTDIR="

  4. ruby-on-rails - 如何在我的 Rails 应用程序 View 中打印 ruby​​ 变量的内容? - 2

    我是一个Rails初学者,但我想从我的RailsView(html.haml文件)中查看Ruby变量的内容。我试图在ruby​​中打印出变量(认为它会在终端中出现),但没有得到任何结果。有什么建议吗?我知道Rails调试器,但更喜欢使用inspect来打印我的变量。 最佳答案 您可以在View中使用puts方法将信息输出到服务器控制台。您应该能够在View中的任何位置使用Haml执行以下操作:-puts@my_variable.inspect 关于ruby-on-rails-如何在我的R

  5. ruby - 我可以将我的 README.textile 以正确的格式放入我的 RDoc 中吗? - 2

    我喜欢使用Textile或Markdown为我的项目编写自述文件,但是当我生成RDoc时,自述文件被解释为RDoc并且看起来非常糟糕。有没有办法让RDoc通过RedCloth或BlueCloth而不是它自己的格式化程序运行文件?它可以配置为自动检测文件后缀的格式吗?(例如README.textile通过RedCloth运行,但README.mdown通过BlueCloth运行) 最佳答案 使用YARD直接代替RDoc将允许您包含Textile或Markdown文件,只要它们的文件后缀是合理的。我经常使用类似于以下Rake任务的东西:

  6. Ruby 从大范围中获取第 n 个项目 - 2

    假设我有这个范围:("aaaaa".."zzzzz")如何在不事先/每次生成整个项目的情况下从范围中获取第N个项目? 最佳答案 一种快速简便的方法:("aaaaa".."zzzzz").first(42).last#==>"aaabp"如果出于某种原因你不得不一遍又一遍地这样做,或者如果你需要避免为前N个元素构建中间数组,你可以这样写:moduleEnumerabledefskip(n)returnto_enum:skip,nunlessblock_given?each_with_indexdo|item,index|yieldit

  7. jquery - 我的 jquery AJAX POST 请求无需发送 Authenticity Token (Rails) - 2

    rails中是否有任何规定允许站点的所有AJAXPOST请求在没有authenticity_token的情况下通过?我有一个调用Controller方法的JqueryPOSTajax调用,但我没有在其中放置任何真实性代码,但调用成功。我的ApplicationController确实有'request_forgery_protection'并且我已经改变了config.action_controller.consider_all_requests_local在我的environments/development.rb中为false我还搜索了我的代码以确保我没有重载ajaxSend来发送

  8. ruby-on-rails - Cucumber 是否只是 rspec 的包装器以帮助将测试组织成功能? - 2

    只是想确保我理解了事情。据我目前收集到的信息,Cucumber只是一个“包装器”,或者是一种通过将事物分类为功能和步骤来组织测试的好方法,其中实际的单元测试处于步骤阶段。它允许您根据事物的工作方式组织您的测试。对吗? 最佳答案 有点。它是一种组织测试的方式,但不仅如此。它的行为就像最初的Rails集成测试一样,但更易于使用。这里最大的好处是您的session在整个Scenario中保持透明。关于Cucumber的另一件事是您(应该)从使用您的代码的浏览器或客户端的角度进行测试。如果您愿意,您可以使用步骤来构建对象和设置状态,但通常您

  9. java - 我的模型类或其他类中应该有逻辑吗 - 2

    我只想对我一直在思考的这个问题有其他意见,例如我有classuser_controller和classuserclassUserattr_accessor:name,:usernameendclassUserController//dosomethingaboutanythingaboutusersend问题是我的User类中是否应该有逻辑user=User.newuser.do_something(user1)oritshouldbeuser_controller=UserController.newuser_controller.do_something(user1,user2)我

  10. LC滤波器设计学习笔记(一)滤波电路入门 - 2

    目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称

随机推荐