嗨我試圖在我的web應用程序中實現添加到購物車機制。 所以這就是爲什麼臨時我創建了3個實現這種機制的JSP頁面。但它不能正常工作。加入購物車不起作用
我也創建了會話來唯一標識特定的用戶會話,但它並沒有實際在所有頁面中實現。
以下是我的代碼:
test.jsp的
<%
Random rkey = new Random();
int randomkey = Math.abs(rkey.nextInt());
String sdata = "keyur"+randomkey;
DateFormat dateFormat = new SimpleDateFormat("HHmmss");
Calendar cal = Calendar.getInstance();
String sess = "keyur"+randomkey+dateFormat.format(cal.getTime());
session.setAttribute("KEYUR", sess);
%>
<% response.sendRedirect("test1.jsp"); %>
test1.jsp
Hello <%= session.getAttribute("KEYUR")%>
<%
String a="shirt",b="jeans";
int a1 = 10,b1=20;
Double a2=100.00,b2=200.00;
%>
<br><br>
A : <a href="test2.jsp?item=<%=a%>&qty=<%=a1%>&price=<%=a2%>" id="a1" name="a1">Add To Cart</a><br><br>
A1 : <a href="test2.jsp?item=<%=b%>&qty=<%=b1%>&price=<%=b2%>" id="a2" name="a2">Add To Cart</a>
test2.jsp
Hello <%= session.getAttribute("KEYUR")%><br><br><br><br>
Your Cart :
<%
List<String> pname = new ArrayList<String>();
List<Integer> pqty = new ArrayList<Integer>();
List<Double> ppr = new ArrayList<Double>();
%>
<%
pname.add(request.getParameter("item"));
pqty.add(Integer.parseInt(request.getParameter("qty")));
ppr.add(Double.parseDouble(request.getParameter("price")));
Double total=0.00;
%>
<br><br>
<%
for(int i = 0;i < pname.size();i++)
{
String name = pname.get(i);
Integer qty1 = pqty.get(i);
Double pr1 = ppr.get(i);
%>
Name : <%= name %><br>
Qty : <%= qty1 %><br>
Price : <%= pr1 %><br><br>
Total : <%= total += qty1*pr1 %>
<%
}
%>
現在我已經採取了靜態數據,如果它會工作,那麼我會嘗試與動態數據。 任何人都告訴我爲什麼只有一個項目顯示在購物車中。 假設用戶點擊添加到購物車,然後重定向到test2.jsp並再次返回到test1.jsp,然後點擊第二個添加到購物車,然後購物車應附加不覆蓋。 但目前它是覆蓋。
任何建議,請...
的地方,但假設我要添加多個項目,然後我就會有什麼關係? –
繼續添加到pname。無論如何,這是錯誤的方法。首先,您應該有一個類來描述包裝物品,單價和數量的購物車對象,稱之爲CartItem。然後您應該使用列表並保存在會話中。最後,您應該從會話中獲取您的列表,並在列表中循環。祝你好運 –
alexgrimaldi
我試圖在pname中添加更多項目,但它只存儲一個項目並顯示它。我知道這是一個錯誤的方法,我知道我必須爲購物車創建單獨的類來存儲物品。我只是問,這樣可能嗎? –