📄 cartforwindow.java~90~
字号:
package data;
import javax.naming.*;
import java.util.*;
import javax.rmi.PortableRemoteObject;
import java.rmi.RemoteException;
import cmscartpro.*;
public class CartForWindow {
CartHome cartHome = null;
Cart cart = null;
String customer = "";
//创建购物车的处理方法
public CartForWindow(String customer) {
this.customer = customer;
try {
initialize();
}
catch (Exception ex) {
ex.printStackTrace();
}
}
//EJB的初始化方法
public void initialize() throws Exception {
//创建服务器对象查找类
Context context = getInitialContext();
//取得EJB在服务器的对象
Object ref = context.lookup("Cart");
//取得Cart EJB的创建接口
cartHome = (CartHome) PortableRemoteObject.narrow(ref, CartHome.class);
//取得Cart EJB的远程接口
cart = create();
}
//服务器对象查找类的创建方法
private Context getInitialContext() throws Exception {
String url = "t3://bemyfriend:7001";
String user = null;
String password = null;
Properties properties = null;
//初始化联接服务器的属性
try {
properties = new Properties();
properties.put(Context.INITIAL_CONTEXT_FACTORY,
"weblogic.jndi.WLInitialContextFactory");
properties.put(Context.PROVIDER_URL, url);
if (user != null) {
properties.put(Context.SECURITY_PRINCIPAL, user);
properties.put(Context.SECURITY_CREDENTIALS, password == null ? "" : password);
}
return new InitialContext(properties);
}
catch(Exception e) {
System.out.println("Unable to connect to WebLogic server at " + url);
System.out.println("Please make sure that the server is running.");
throw e;
}
}
//创建Cart EJB的远程接口
public Cart create() throws Exception {
cart = cartHome.create(customer);
return cart;
}
//添加商品的方法
public void addGoods(java.util.Hashtable goods) {
try{
cart.addGoods(goods);
}catch(Exception ex){
ex.printStackTrace();
}
}
//修改商品数量的方法
public void updateGoods(java.util.Hashtable goods) {
try{
cart.updateGoods(goods);
}catch(Exception ex){
ex.printStackTrace();
}
}
//删除商品数量的方法
public void removeGoods(java.util.Collection goodsId) {
try{
cart.removeGoods(goodsId);
}catch(Exception ex){
ex.printStackTrace();
}
}
//取得顾客名字的方法
public java.lang.String getCustomer() {
try{
return cart.getCustomer();
}catch(Exception ex){
ex.printStackTrace();
return "";
}
}
//设置顾客名字的方法
public void setCustomer(java.lang.String customer) {
try{
cart.setCustomer(customer);
}catch(Exception ex){
ex.printStackTrace();
}
}
//取得商品集合的方法
public Hashtable getGoods() {
try{
return cart.getGoods();
}catch(Exception ex){
ex.printStackTrace();
return null;
}
}
//取得商品数组的方法
public Object[][] getGoodsobjs(){
Hashtable goods = getGoods();
Enumeration GoodsIds = goods.keys();
//创建商品数组
Object[][] goodsObjs = new Object[goods.size()+1][7];
//创建单个商品数组
String[] oneGoodsStrs = new String[4];
int row = 0;
String goodsStr = "";
String goodsId = "";
double amount = 0;
double oneGoodAmount = 0;
int quantity = 0;
while(GoodsIds.hasMoreElements()){
//取得商品标识
goodsId = (String)GoodsIds.nextElement();
//取得商品字符串
goodsStr = (String)goods.get(goodsId);
//分解商品字符串
oneGoodsStrs = (new CartMethod()).decodeGoodsStr(goodsStr);
goodsObjs[row][0] = goodsId; //取得商品标识
goodsObjs[row][1] = oneGoodsStrs[0]; //取得商品名称
goodsObjs[row][2] = oneGoodsStrs[1]; //取得单位数量
goodsObjs[row][3] = new Double(oneGoodsStrs[2]); //取得单价
goodsObjs[row][4] = new Boolean(false); //是否修改
goodsObjs[row][5] = new Integer(oneGoodsStrs[3]); //取得购买数量
try{
oneGoodAmount = Double.parseDouble(oneGoodsStrs[2]) *
Double.parseDouble(oneGoodsStrs[3]);
quantity += Integer.parseInt(oneGoodsStrs[3]); //累加购买数量
}catch(Exception ex){
oneGoodAmount = 0;
}
//累加总金额
amount += oneGoodAmount;
goodsObjs[row][6] = new Double(oneGoodAmount); //取得金额
row++;
}
//在最后一行显示总金额
goodsObjs[row][0] = "总金额";
goodsObjs[row][1] = "";
goodsObjs[row][2] = "";
double averagePrice = 0;
//计算平均单价
if(quantity != 0){
averagePrice = roundUp(amount/quantity);
averagePrice /= 100;
}else{
averagePrice = 0;
}
goodsObjs[row][3] = new Double(averagePrice);
goodsObjs[row][4] = new Boolean(false); //是否修改
goodsObjs[row][5] = new Integer(quantity); //取得购买数量
goodsObjs[row][6] = new Double(roundUp(amount));
return goodsObjs;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -