求助java+jsp+javaBean(一段关于session购物车程序)

来源:百度知道 编辑:UC知道 时间:2024/04/28 21:11:43
数量增加不上去,程序部分大概是下面这些用的是java和jsp+javaBean知道的人请给小弟指点迷津,小弟已经抓狂2天了。

购物车的类为Cart ,购物清单为CartItem

购物清单CartItem :productid, price, count 分别有get 和set 方法我就不写了;

购物车Cart :List<Caritem> items = new ArrayList<Cartitem>();

而购物车里有一个方法,

public void addTtem (CartItem item) {

for(Iterator<CartItem> it = itesm.iterator();it.hasNext();) {
CartItem ci = it.next();
if(ci.getProductid() == item.getProductid()) {
System.out.println(ci.getCount());
item.setCount(item.getCount() + ci.getCount());
item.setProductid(ci.getProductid());
return;
}

}

itesm.add(item);
}

买东西是产品的Id和数量count是从一个form里传过来的,在买东西页面里调用

CartItem ci = new CartItem();
ci.setProductid(id);
ci.setCount(count);
ci.setPric

错误在于你for循环里面的setCount。
应该是ci.setCount(item.getCount() + ci.getCount());
不是item.setCount。
你的逻辑是,先查找items里面是否有该商品,如果有,更新数量;如果没有,向列表中添加一个新的item。所以for循环里是查找到的情况,对你查到的那条商品(ci),设置新的数量(setCount)即可。
而item是你传过来的参数,item.setCount没有意义。