已有101人关注
hibernate应用开发完全手册第19章的一些问题
发表在Java图书答疑 2009-05-18
是否精华
版块置顶:
 在该书中P451页中的例程19-19的部分代码如下:

 问题一:
List shoppingCart = (List) session.getAttribute("shoppingCart"); // 从Session中获取模拟购物车的List型属性
            if (shoppingCart == null) { // 如果为空则表示用户还没购买任何商品
                shoppingCart = new ArrayList(); //则新声名一个List属性
                shoppingCart.add(merchandiseInfo); //并直接将代表购买商品的对象放入该新声名的属性
            } else { // 否则表示用户已经购买了商品
                id = merchandiseInfo.getId();
                // 判断购物车中是否已经包含该商品,如果包含则在原购买数量上加1
                boolean add = false;
                for (int i = 0; i < shoppingCart.size(); i++) {
                    MerchandiseInfo info = (MerchandiseInfo) shoppingCart.get(i);
                    if (info.getId() == id) {
                        info.setAmount(info.getAmount() + 1);
                        shoppingCart.add(i, info);
                        shoppingCart.remove(i);
                        add = true; //如果包含,则将add该改为true
                        break;
                    }
                }

请问其中的              shoppingCart.add(i, info);
                        shoppingCart.remove(i);
这两句代码是何意?可不可以把shoppingCart.remove(i);这句代码去掉呢?请老师们指教!

问题二:在该书P453页的例程19-23的部分代码如下:

// 计算该笔订单购物数量和消费金额
            int amount = 0;
            int money = 0;
            List shoppingCart = (List) session.getAttribute("shoppingCart");
            session.removeAttribute("shoppingCart");
            for (int i = 0; i < shoppingCart.size(); i++) {
                MerchandiseInfo info = (MerchandiseInfo) shoppingCart.get(i);
                amount = amount + info.getAmount();
                money = money + info.getPrice() * info.getAmount();
            }
            // 填写订单信息
            orderInfo.setConsignment("new");
            orderInfo.setDates(dateWithSpace);
            orderInfo.setTotal(amount);
            orderInfo.setMoney(money);

请问其中的session.removeAttribute("shoppingCart");这句代码是何意呢?如果去掉这句代码会对下一句的循环部分代码造成什么影响呢?请老师们指教!
再次谢谢!
分享到:
精彩评论 1
无语_mrkj
学分:3155 LV11
2009-05-20
沙发
对于您说的第一个问题,那两句代码可以删除,不影响程序,但是对于第二个问题中的那句代码不能删除,那句代码是用来清空购物车的,如果删除了,在到收银台结帐后,再次查看购物车时,您会发现购物车中仍然保留着上次的商品。
首页上一页 1 下一页尾页 1 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照