我想将产品的标识发送到购物卡页面,然后在购物车页面上显示该产品我同时使用了request.set属性和session.setattribute,但它不起作用。如果我使用session.getattribute或request.getattribute.toString(),页面为白色,则不会显示任何内容。如果我仅使用request.getAttribute(不带toString),则结果中不会显示“ ok”行,这表示购买的商品为空。
ProductStore是包含我们拥有的产品的地图。与shoppingcardStore相同。 ProductBean是产品的类
[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.
%>
当然,这只是我的代码的一部分,如果您需要了解更多内容,请告诉我。
<%Object product=ptp;
request.setAttribute("purchase", ptp.getId());
%>
您可以做的是,在URL参数中以GET或表单(获取/发布)的形式提交此值,以使用request.getParameter()在下一个JSP上获取它。或者您可以通过session.setAttribute()使用会话范围
希望有帮助