我找到了不同的解决方案,即使是在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?
答案 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));