下面是实例的源码!注释已经很清楚了[JDK1.5 或者JDK1.5以上]
CartItems 如下
public class CartItems {
//商品的信息
private Product product=new Product();
//商品的数量
private int namount=0;
public CartItems(Product product,int namount)
{
this.product=product;
this.namount=namount;
}
public Product getProduct() {
return product;
}
public void setProduct(Product product) {
this.product = product;
}
public int getNamount() {
return namount;
}
public void setNamount(int namount) {
this.namount = namount;
}
}
action如下
//得到商品的编号
String productId=request.getParameter("productId");
//根据商品的编号查询该商品的信息 返回商品的对象Product
Product product=this.productBo.getProductInfo(new Integer(Integer.parseInt(productId)));
//创建HttpSession的对象
HttpSession session=request.getSession();
//判读Map集合里面是否 存在着对象 就是说map里面是否已经添加了商品
Map<Integer,CartItems> cart=(Map<Integer, CartItems>) session.getAttribute("cart");
if (null==cart) {
//如果没有添加就创建一个HashMap
cart=new HashMap<Integer, CartItems>();
session.setAttribute("cart", cart);
}
//如果Map集合里面存在着对象 就根据对象的编号得到该对象
CartItems items=cart.get(product.getProductId());
if (null==items) {
//如果没有商品就将商品添加到里面
cart.put(product.getProductId(), new CartItems(product,1));
}
else
{
//如果存在商品数量+1
items.setNamount(items.getNamount()+1);
}
List<CartItems> arrayList=new ArrayList<CartItems>();
//将map里面的商品对象遍历出来
for (Map.Entry<Integer, CartItems> entry:cart.entrySet()) {
CartItems cartItems=entry.getValue();
arrayList.add(cartItems);
}
request.setAttribute("arrayList",arrayList);
//发送到遍历的页面
return mapping.findForward("success");