簡體   English   中英

如何在兩個 jsp 之間發送數據?

[英]How do I send data between two jsp?

我想將產品的標識符發送到購物卡頁面,然后在購物車頁面上顯示產品,我同時使用了 request.set 屬性和 session.setattribute 並且它不起作用。 如果我使用 session.getattribute 或 request.getattribute.toString() 頁面為白色,則不會顯示任何內容。 如果我只使用 request.getAttribute(沒有 toString),則結果中不會顯示“ok”行,這意味着購買的是 null。

ProductStore 是包含我們擁有的產品的 map。 購物卡商店也是如此。 ProductBean 是產品的 class

products頁面:

     <h2><a href="<%= "product-page.jsp?id=" + ptp.getId() %>"><%=ptp.getName()%></a></h2>
      <div class="product-btns">
         <form method="GET" action="<%="WhishList.jsp"%>">
            <button class="main-btn icon-btn" name="id" value="<%=ptp.getId()%>"><i class="fa fa-heart"></i></button>
         </form>    
            <button class="main-btn icon-btn"><i class="fa fa-exchange"></i></button>
        <form action="shoppingcard.jsp" method="get">
          <p> <%= ptp.getId() %> </p>
          <%Object product=ptp;
                   request.setAttribute("purchase", ptp.getId());
          %>
          <input type="submit" value="add to cart">
             <button class="primary-btn add-to-cart"><i class="fa fa-shopping-cart"></i> Add to Cart</button>
        </form>
    </div>

shoppingcard頁面

                ProductStore products = new ProductStore();
                Map<String,ProductBean> prodList = products.getProducts();
                ShoppingcardStore db = new ShoppingcardStore();
                Map<String,ProductBean> list = db.getShoppingcard();
                Object purchased = request.getAttribute("purchase").toString();
                if(purchased!=null){
                    out.println("<h1>Ok</h1>");
                    //ProductBean x = (ProductBean) purchased;
                    String x=(String) purchased;
                    db.Purchase(x);
                    //TODO confirm product has been added to the shoppingcart.
                }%>
                <!-- Product Slick -->
                <div class="col-md-9 col-sm-6 col-xs-6">
                    <div class="row">
                        <div id="product-slick-1" class="product-slick">
                <%  if(list != null){
                    Object[] Shoppingcardlist = list.values().toArray();
                    ProductBean ptp;
                    for(int i = 0; i<Shoppingcardlist.length; i++){
                        ptp = (ProductBean)Shoppingcardlist[i];
                        // TODO display the info of the current wish list.
                %>

當然,這只是我代碼的一部分,如果您需要查看更多內容,請告訴我。

當您執行 setAttribute() 時,其 scope 僅限於加載主頁時的請求,因此在下一頁上將不可用,因為它將是一個新請求。

<%Object product=ptp;
                   request.setAttribute("purchase", ptp.getId());
          %>

您可以做的是,在 URL 參數中以 GET 或表單(get/post)的形式提交此值,以使用 request.getParameter() 在下一個 JSP 上獲取它。

或者您可以使用 session.setAttribute()

希望能幫助到你

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM