首页上一页 1 下一页尾页 1 条记录 1/1页
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");这句代码是何意呢?如果去掉这句代码会对下一句的循环部分代码造成什么影响呢?请老师们指教!
再次谢谢!
问题一:
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");这句代码是何意呢?如果去掉这句代码会对下一句的循环部分代码造成什么影响呢?请老师们指教!
再次谢谢!