display.jsp显示所有物品,用struts逻辑标签遍历
<logic:iterate id="stu" name = "stus" indexId="i">
...
...
<html:link action="/select.do" paramId="ID" paramName="i" >挑选</html:link>
在SelectAction 中 
string str = request.getParameter("ID");
int id =.....;
ArrayList stus = (ArrayList) session.getAttribute("stus");
Object objectId = stus.get(id);
ArrayList cart =(ArrayList) session.getAttribute("cart");
if(cart == null)
{
cart= new ArrayList();
session.setAttribute("cart", cart);
}
cart.add(objectId);
请问 我怎么判断 两次取的ID值是一样的呢?意思就是如果这个商品我已经放入购物车了,再选择就不放入了,不然,在购物车中这个商品会显示两次。。
帮我下,谢谢大家了!

解决方案 »

  1.   

    商品不可以购两件的吗,如果可以的话数字累加就行。
    比较的话,lz的购物车的里存的商品id应该能拿到吧,页面上商品id也能拿到,这样还不能比较吗
      

  2.   

    用个循环判断一下
    for(int i=0;i<cart.Length;i++)
    {
       Object object =  (Object) cart.get(i);
       if(object==objectId) break;
    }
    if(i==cart.Length) 
    {
       cart.add(objectId); 
    }
    代码不一定对
    就是意思一下
      

  3.   

    ArrayList cart =(ArrayList) session.getAttribute("cart"); 商品类名objectId =(商品类名) stus.get(id); if(cart == null) 

       cart= new ArrayList(); 
       session.setAttribute("cart", cart); 
    }else{
       for(int i=0;i<cart.list;i++){
          商品类名 goods = (商品类名)stus.get(id); 
          if(goods.getId()!=objectId.getId()){
              cart.add(objectId);
          }
       }
    }
    不过商品可以购N件的, 如果是同一件商品的话你吧数量累加就行了, 那可以建一个实体类
    如(GoodsCard)属性就是     商品     数量然后把这 GoodsCard 存储到  Map 集合用    就用商品的ID作为Key   根据key 进行判断有没有这件商品
      

  4.   

    楼上的,你那个“商品类名” 是我代码中的“Object”吗?