簡體   English   中英

將對象從JSP設置為servlet

[英]Set object from JSP to servlet

即使在stackOverflow上,我也找到了不同的解決方案,但它們對我不起作用。

我有一個JSP文件,可以動態顯示product ,它是Java用戶定義的對象,具有唯一的ID。 對於每種產品,它應該顯示所有信息以及一個顯示“添加到購物車”的按鈕。 如何實施添加到購物車?

我的代碼(JSP):

<% List<Product> queryResults = (ArrayList<Product>) request.getAttribute("queryResults");

        for(Product product : queryResults) { %>

        <table class = "qrtable">

            .......

                <% User currentUser = (User) session.getAttribute("currentSessionUser");
                if (currentUser != null){%> <!-- user is logged -->
                <tr><td  colspan="2">  
                    <form action="${pageContext.request.contextPath}/cart" method="post">
                        <input type="submit" value="Add to cart"/>
                    </form>
                </td></tr>
                 <%} 
            else{

                } %>

            </table>
        <% } %>

如何將產品添加到用戶購物車? 當按下“添加到購物車”按鈕時,如何將productID傳遞給servlet?

我找到了解決方案。

在JSP中:

<% User currentUser = (User) session.getAttribute("currentSessionUser");
                if (currentUser != null){%>
                <tr>
                    <td colspan="2">  
                        <form action="${pageContext.request.contextPath}/cart" method="POST">
                            <input type="hidden" name="productID" value="<%=product.getID()%>" />
                            <input type="submit" value="Add to cart"/>
                        </form>
                    </td>
                </tr>
                 <%} else{%>
                <tr>
                    <td colspan="2">Account required to buy.</td>
                </tr>
            <%} %>

在servlet中(方法POST ):

int productID = Integer.parseInt(request.getParameter("productID"));

HttpSession session = request.getSession(true);
User loggedUser = (User) session.getAttribute("currentSessionUser");
loggedUser.getShoppingCart().addToCart(ProductDAO.getFromDatabase(productID));

暫無
暫無

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

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