将对象从JSP设置为servlet

时间:2017-09-22 10:23:12

标签: java jsp servlets

我找到了不同的解决方案,即使是在stackOverflow上,但它们对我不起作用。

我有一个JSP文件,它以dinamically显示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>
        <% } %>

如何将产品添加到用户购物车? 当按下“添加到购物车”按钮时,如何将产品ID传递给servlet?

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。

在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));