Servlets 如何检索hashmap中存储的单个数组值?
我试图使用Javaservlet编写一个购物车应用程序,但在尝试检索要在html页面中显示的单个项目时遇到了问题 以下是购物车行项目的片段:Servlets 如何检索hashmap中存储的单个数组值?,servlets,arraylist,Servlets,Arraylist,我试图使用Javaservlet编写一个购物车应用程序,但在尝试检索要在html页面中显示的单个项目时遇到了问题 以下是购物车行项目的片段: public class Item { private int id; private String name; private final int qty; private final double price; private final String description; //constructor public
public class Item
{
private int id;
private String name;
private final int qty;
private final double price;
private final String description;
//constructor
public Item(int ident, String n, int q, double p, String desc)
{
this.id = ident;
this.name = n;
this.qty = q;
this.price = p;
this.description = desc;
}
}
以下是主购物车类的片段:
//main cart
public class Cart
{
HashMap<String, Item> cartItems;
public Cart()
{
cartItems = new Item();
}
public HashMap getCartItems()
{
return cartItems;
}
public void addToCart(String itemId, String itemName, int qty, double price, String desc)
{
Item product = new Item(itemId, itemName, qty, price, desc);
cartItems.put(itemId, product);
}
public void deleteFromCart(String itemId)
{
cartItems.remove(itemId);
}
}
//主购物车
公共类购物车
{
HashMap项目;
公共购物车()
{
cartItems=新项目();
}
公共HashMap getCartItems()
{
归还物品;
}
public void addToCart(String itemId、String itemName、整数数量、双倍价格、String desc)
{
项目产品=新项目(项目ID、项目名称、数量、价格、描述);
cartItems.put(itemId,product);
}
公共void deleteFromCart(字符串itemId)
{
cartItems.remove(itemId);
}
}
我不确定使用hashmap是否是一个好的选择,但ArrayList可能是一个更好的选择。无论哪种方式,我都被困在如何通过hashmap/arraylist迭代和检索单个项上
以下是实现购物车的Servlet代码片段:
String action = request.getParameter("action");
HttpSession session = request.getSession();
Cart shoppingCart;
shoppingCart = (Cart) session.getAttribute("cart");
if (shoppingCart == null)
{
shoppingCart = new Cart();
session.setAttribute("cart", shoppingCart);
}
switch (action)
{
case "add":
shoppingCart.addToCart(id, name, qty, price, desc);
session.setAttribute("cart", shoppingCart);
break;
case "delete":
shoppingCart.deleteFromCart(id);
session.setAttribute("cart", shoppingCart);
shoppingCart = (Cart) session.getAttribute("cart");
break;
}
HashMap<String, Item> items = shoppingCart.getCartItems();
if (items.size() > 0)
{
//cart is not empty ... iterate over the array and display to user
out.println("<!DOCTYPE html>");
out.println("<html>");
out.println("<head>");
out.println("<title>Shopping Cart</title>");
....
....
}
String action=request.getParameter(“action”);
HttpSession session=request.getSession();
购物车;
shoppingCart=(购物车)会话.getAttribute(“购物车”);
if(shoppingCart==null)
{
shoppingCart=新购物车();
session.setAttribute(“购物车”,shoppingCart);
}
开关(动作)
{
案例“添加”:
shoppingCart.addToCart(id、名称、数量、价格、描述);
session.setAttribute(“购物车”,shoppingCart);
打破
案例“删除”:
shoppingCart.deleteFromCart(id);
session.setAttribute(“购物车”,shoppingCart);
shoppingCart=(购物车)会话.getAttribute(“购物车”);
打破
}
HashMap items=shoppingCart.getCartItems();
如果(items.size()>0)
{
//购物车不是空的…迭代数组并显示给用户
out.println(“”);
out.println(“”);
out.println(“”);
out.println(“购物车”);
....
....
}
我真正想要的是能够引用Item对象的各个项。关于如何做到这一点,有什么建议吗?或者对如何编写更好更简单的购物车有什么建议?我当然希望能够引用对象的各个项目,以便方便地操作它们。提前感谢。1。将地图的定义更改为
map
,而不是map
。2.用谷歌搜索“购物车模式”来检查购物车的一些好的设计建议。可能重复(Item:items.values()){out.println(Item.getName();}。阅读收藏教程。将地图的定义更改为map
,而不是map
。2.用谷歌搜索“购物车模式”来检查购物车的一些好的设计建议。可能重复(Item:items.values()){out.println(Item.getName();}。阅读“收藏”教程。