【问题标题】:How to get value without accessing database?如何在不访问数据库的情况下获得价值?
【发布时间】:2014-12-14 20:23:56
【问题描述】:

我需要你的帮助。我目前正在做一个购买项目。用户单击添加到购物车后,该项目将被添加到购物车但尚未保存到数据库中。然后稍后,我将让用户单击结帐。 PurchaseCart.jsp 将执行操作并将它们带到 PurchaseCheckOut servlet。那么,我怎样才能从以前的数据中获取数据呢?

PurchaseCart.jsp

<body>
          <%!List<Double> stockArray = new ArrayList<Double>() ;%>

     <%!List<Object> list1 = new ArrayList<Object>();%>

     <% Object o = request.getAttribute("purchased"); 
     list1.add(o); 
     int size = list1.size(); 
     double stockPrice = (Double)request.getAttribute("stockPriceReal"); 
      if(stockArray.size() == 0)
      { 
         stockArray.add(stockArray.size(),stockPrice);
      } 
      else {

stockArray.add(stockArray.size(), stockPrice);  }  %>
<form action = "../PurchaseCheckOut"> 
   <table border="1">
            <thead>
                <tr>
                    <th>No.</th>
                    <th>Purchase Details ID</th>
                    <th>Stock ID</th>
                    <th>Quantity</th>
                    <th>Price</th>
                </tr>
            </thead>
            <tbody>

                    <% for (int g = 0; g < size; g ++) { %>
                <tr>
                   <% String toString = list1.get(g).toString(); 
                    String subString1 = toString.substring(0,7);
                    String subString2 = toString.substring(7,9);
                    String subString3 = toString.substring(9,14);
                   %>
                    <td><%= g +1 %></td>
                    <td><%= subString1 %></td>
                    <td><%= subString2 %></td>
                    <td><%= subString3 %></td>
                    <td><%= stockArray.get(g).toString() %></td>


                </tr>

                <% } %>
            </tbody>
        </table>
            <input type = submit name="checkout" value="Check Out">
            </form>
     </body>

PurchaseCheckOut.java(我已经完成了持久化部分和重定向部分,但我不知道如何获取值。?是我传入的值。)

 protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {

            PurchaseService ps = new PurchaseService(em);
            utx.begin();
            boolean success = ps.addPurchaedetails(?);
            utx.commit();
            HttpSession session = request.getSession();
            session.setAttribute("success", success);
            response.sendRedirect("MemberAccess/AddConfirm.jsp");
        }
        catch (Exception ex) {
            Logger.getLogger(PurchaseCheckOut.class.getName()).log(Level.SEVERE, null, ex);
        } 

用于 addPurchasedetails 的 PurchaseService

 public boolean addPurchasedetails(Purchasedetails purcD) {
    mgr.persist(purcD);
    return true;    }

购买的结构是这样的:PurchaseM.jsp(让用户选择)-> PurchaseCreate.java(将所有值传递给购物车)-> PurchaseCart.jsp(显示值(尚未保留))-> PurchaseCheckOut.java(persist) -> AddConfirm.jsp(display "You've done")

【问题讨论】:

    标签: java jsp servlets persist


    【解决方案1】:

    您可以将添加到购物车的值存储在 Session 对象中,并在您需要的任何地方引用。

    【讨论】:

    • 我按照你说的做了,但我应该把表格放在哪里?当我单击 CheckOut 时,出现错误 404。我的表格我只是&lt;form action = "../PurchaseCheckOut"&gt; input submit &lt;/form&gt;
    • 您收到 404,因为您的 PuchaseCheckOut 路径不正确。提供您的 PurchaseCheckOut servlet 所在的正确路径。
    • 我刚刚做了 ../PurchaseCheckout,因为我之前做了 ../PurchaseCreate 并且它有效。两者都在同一个文件夹中,并且两个 JSP 都在同一个文件夹中。我的purchaseCheckOut 在源包下-> 模型和我的jsp 文件在网页下-> 会员访问
    • 我实际上传递给 MainButtonM,它将它们重定向到他们自己的透视 servlet。 MainButtonM 与 purchaseCheckOut 位于同一文件夹中
    • 您以 ../PurhcaseCheckOut 开头的 URL 需要确认。如果您在相同的路径和 web.xml 中都可用,那么您也提供了相同的路径,那么您可以删除“../”然后尝试。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-19
    相关资源
    最近更新 更多