jsp とサーブレットを使用してショッピング カート アプリケーションを作成しました。
ショッピングカートに商品を追加できます。
しかし、 「View Shopping Cart」 jsp ページのアイテムを次のテーブル形式で表示したいと考えています。
Item | Quantity | Price
book1 | 1 | 100
book2 | 2 | 200
Total | 3 | 300
また、私はページで機能したいupdateQuantity()
と思っています。removeFromCart()
ViewCart.jsp
どうすればいいですか?
ページのコードは次のとおりです。
ShoppingCart.java
package beans;
import java.util.Enumeration;
import java.util.Hashtable;
public class ShoppingCart {
protected Hashtable items=new Hashtable();
public void addItem(String itemId,String desc,float price,int quantity)
{
String [] item={itemId,desc,Float.toString(price),Integer.toString(quantity)};
if(items.containsKey(itemId))
{
String [] tmpItem=(String[])items.get(itemId);
int tmpQuant=Integer.parseInt(tmpItem[3]);
quantity+=tmpQuant;
tmpItem[3]=Integer.toString(quantity);
}
else
{
items.put(itemId,item);
}
}
public void removeItem(String itemId)
{
if(items.containsKey(itemId))
{
items.remove(itemId);
}
}
public void updateQuantity(String itemId,int quantity)
{
if(items.contains(itemId))
{
String [] tmpItem=(String[])items.get(itemId);
tmpItem[3]=Integer.toString(quantity);
}
}
public Enumeration getEnumeration()
{
return items.elements();
}
public float getCost()
{
Enumeration enumeration=items.elements();
String [] tmpItem;
float totalCost=0.00f;
while(enumeration.hasMoreElements())
{
tmpItem=(String[]) enumeration.nextElement();
totalCost+=(Integer.parseInt(tmpItem[3]))*(Float.parseFloat(tmpItem[2]));
}
return totalCost;
}
public int getNumberOfItems()
{
Enumeration enumeration=items.elements();
String [] tmpItem;
int numberOfItems=0;
while(enumeration.hasMoreElements())
{
tmpItem=(String[])enumeration.nextElement();
numberOfItems+=Integer.parseInt(tmpItem[3]);
}
return numberOfItems;
}
public String[] showCart()
{
String itemId = null;
String [] tmpItem = null;
int tmpId;
String desc = null;
float price = 0;
int quantity = 0;
String [] item={itemId,desc,Float.toString(price),Integer.toString(quantity)};
Enumeration enumeration=items.elements();
while(enumeration.hasMoreElements())
{
tmpItem=(String[])enumeration.nextElement();
tmpId=Integer.parseInt(tmpItem[0]);
}
return tmpItem;
}
}
製品.jsp
<%@page import="beans.ShoppingCart"%>
<%@page import="java.util.*" %>
<%@page import="javax.servlet.http.*" %>
<jsp:useBean id="cart" scope="session" class="beans.ShoppingCart" />
<head>
<title>Product</title>
</head>
<body>
<p>Shopping Cart Quantity : <%=cart.getNumberOfItems() Price : <%=cart.getCost() %></p>
<h2>Book 1 </h2><br>
<h2> Price : 250</h2><br>
<form action="Product.jsp" method="POST">
<input type="submit" name="Submit" value="Add to Cart">
<input type="hidden" name="id" value="1">
<input type="hidden" name="desc" value="Book 1">
<input type="hidden" name="price" value="250">
</form>
<h2> BOOK 2</h2><br>
<h2> Price : 300</h2>><br>
<form action="Product.jsp" method="POST">
<input type="submit" name="Submit" value="Add to Cart">
<input type="hidden" name="id" value="2">
<input type="hidden" name="desc" value="Book 2">
<input type="hidden" name="price" value="300">
</form>
</body>
</html>