购物车模块实例。购物车模块可以浏览商品类别;可以根据商品类别浏览商品信息;可以购买商品;可以查看购物车的商品;可以修改购买商品的数量和删除购买的商品。
源代码在线查看: cartbean.java~71~
package cmscartpro;
import javax.ejb.*;
import data.*;
import java.util.*;
public class CartBean implements SessionBean {
SessionContext sessionContext;
private java.lang.String customer;
//创建商品集合类
private Hashtable goods = new Hashtable();
public void ejbCreate(String customer) throws CreateException {
this.customer = customer;
System.out.println(customer + "顾客进入购物车模块.");
}
public void ejbRemove() {
System.out.println(customer + "顾客离开购物车模块.");
}
public void ejbActivate() {
}
public void ejbPassivate() {
}
public void setSessionContext(SessionContext sessionContext) {
this.sessionContext = sessionContext;
}
//添加商品的方法
public void addGoods(java.util.Hashtable goods) {
//取得添加商品的ID集合
Enumeration newGoodsIds = goods.keys();
while(newGoodsIds.hasMoreElements()){
Object goodsId = newGoodsIds.nextElement();
//购买车的商品包括新添加商品
if(this.goods.containsKey(goodsId)){
//分解添加商品字符串
String[] newGoods = (new CartMethod()).decodeGoodsStr(goods.get(goodsId).toString());
//分解购物车商品字符串
String[] oriGoods = (new CartMethod()).decodeGoodsStr(this.goods.get(goodsId).toString());
//增加商品数量
int newQuantity = Integer.parseInt(newGoods[3]) +
Integer.parseInt(oriGoods[3]);
//将修改后的商品数量放入购物车的商品集合,覆盖原来的商品记录
this.goods.put(goodsId, newGoods[0] + "@@" + newGoods[1] + "@@"
+ newGoods[2] + "@@" + String.valueOf(newQuantity));
//购买车的商品不包括新添加商品
}else{
this.goods.put(goodsId, goods.get(goodsId));
}
}
}
//修改商品数量的方法
public void updateGoods(java.util.Hashtable goods) {
//取得修改商品的ID集合
Enumeration newGoodsIds = goods.keys();
while(newGoodsIds.hasMoreElements()){
Object goodsId = newGoodsIds.nextElement();
//覆盖购物车的商品记录
this.goods.put(goodsId, goods.get(goodsId));
}
}
//删除商品数量的方法
public void removeGoods(java.util.Collection goodsId) {
java.util.Iterator goodsIdIterator = goodsId.iterator();
while(goodsIdIterator.hasNext()){
//删除购物车的商品记录
this.goods.remove(goodsIdIterator.next());
}
}
//取得顾客名字的方法
public java.lang.String getCustomer() {
return customer;
}
//设置顾客名字的方法
public void setCustomer(java.lang.String customer) {
this.customer = customer;
}
//取得商品集合的方法
public Hashtable getGoods() {
return goods;
}
}