首页>代码>SSH框架开发购物车>/shoppingcartfinal/src/com/kettas/action/ShoppingcartAction.java
package com.kettas.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.MappingDispatchAction;

import com.kettas.biz.ShoppingcartBizImpl;
import com.kettas.entity.Product;
import com.kettas.entity.Shoppingcart;
import com.kettas.exception.BizException;

/*
 * Title:购物车操作相关Action
 * Author:SecondGroup
 * Time:2010.1.15
 * Version:1.0.0
 */
public class ShoppingcartAction extends MappingDispatchAction{
	private ShoppingcartBizImpl cartBiz;

	public ShoppingcartBizImpl getCartBiz() {
		return cartBiz;
	}

	public void setCartBiz(ShoppingcartBizImpl cartBiz) {
		this.cartBiz = cartBiz;
	}


	/*
	 * 添加一个购物项Action
	 */
	public ActionForward addItem(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response){
		String idStr=request.getParameter("id").trim();
		Integer id=Integer.parseInt(idStr);
		String name=request.getParameter("name");
		String priceStr=request.getParameter("price");
		double price=Double.parseDouble(priceStr);
		String description=request.getParameter("description");
		String amountStr=request.getParameter("amount");
		int amount=Integer.parseInt(amountStr);
		String type=request.getParameter("type");
		Product product=new Product(name,description,price,type);
		product.setId(id);
		
		HttpSession session=request.getSession(true);
		
		Shoppingcart cart=(Shoppingcart) session.getAttribute("cart");
		
		if(cart!=null){
			try {
				cartBiz.setCart(cart);
				cartBiz.addItem(product, amount);
				//维护属性
				cart.setItemsCount(cartBiz.getItemsCount());
				cart.setTotalCost(cartBiz.getTotalCost());
				session.setAttribute("cart", cart);
			} catch (Exception e) {
				throw new BizException(e);
			}
		}else{
			Shoppingcart newCart=new Shoppingcart();
			try {
				cartBiz.setCart(newCart);
				cartBiz.addItem(product, amount);
				
				//维护属性
				newCart.setItemsCount(cartBiz.getItemsCount());
				newCart.setTotalCost(cartBiz.getTotalCost());
				session.setAttribute("cart", newCart);
			} catch (Exception e) {
				throw new BizException(e);
			}
		}
		return mapping.findForward("shoppingcart");
	}
	
	
	/*
	 * 移除一个购物项Action
	 */
	public ActionForward removeItem(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response){
		String productIdStr=request.getParameter("product_id");
		Integer productId=Integer.parseInt(productIdStr);
		
		//从session中获取shoppingcart对象
		HttpSession session=request.getSession(true);
		Shoppingcart cart=(Shoppingcart) session.getAttribute("cart");
		
		//初始化ShoppingcartBizImpl对象
		cartBiz.setCart(cart);
		try {
			//调用ShoppingcartBizImpl删除购物项方法
			cartBiz.deleteItemByProduct(productId);
			
			//维护属性
			cart.setItemsCount(cartBiz.getItemsCount());
			cart.setTotalCost(cartBiz.getTotalCost());
		} catch (Exception e) {
			throw new BizException(e);
		}
		if(cart.getItemsCount()==0){
			session.removeAttribute("cart");
		}else{
			session.setAttribute("cart", cart);
		}
		return mapping.findForward("shoppingcart");
	}
	
	
	/*
	 * 修改购买商品数量
	 */
	public ActionForward modifyAmount(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response){
		String productId[]=request.getParameterValues("productId");
		String newAmount[]=request.getParameterValues("newAmount");
		
		
		HttpSession session=request.getSession(true);
		Shoppingcart cart=(Shoppingcart) session.getAttribute("cart");
		//初始化ShoppingcartBizImpl对象
		cartBiz.setCart(cart);
		
		for(int i=0;i<productId.length;i++){
			try {
				cartBiz.modifyAmountByProduct(Integer.parseInt(productId[i]), Integer.parseInt(newAmount[i]));
				//维护属性
				cart.setItemsCount(cartBiz.getItemsCount());
				cart.setTotalCost(cartBiz.getTotalCost());
			} catch (NumberFormatException e) {
				//当出现数字格式错误的时候应该封装成业务异常抛出
				throw new BizException(e);
			} catch (Exception e) {
				throw new BizException(e);
			}
		}
		session.setAttribute("cart", cart);
		return mapping.findForward("shoppingcart");
	}
	
	
	/*
	 * 清空购物车
	 */
	public ActionForward clearShoppingcart(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response){
		HttpSession session=request.getSession(true);
		Shoppingcart cart=(Shoppingcart) session.getAttribute("cart");
		cartBiz.setCart(cart);
		
		System.out.println("-------------------------FuckingData------------------------------");
		if(cart!=null){
			try {
				cartBiz.clearCart();
			} catch (Exception e) {
				throw new BizException(e);
			}
		}
		
		session.removeAttribute("cart");
		return mapping.findForward("shoppingcart");
	}
}
最近下载更多
haruto1213  LV1 2023年6月30日
yyyyyyyc  LV1 2022年9月21日
qweqqw123  LV2 2021年12月20日
鲁西西  LV1 2021年6月29日
908902058  LV1 2021年6月15日
1973356987  LV13 2021年6月8日
风雨中的孤傲  LV2 2021年5月25日
情绪别致的疯子  LV3 2020年12月20日
嘿嘿嘿123333  LV3 2020年6月26日
林志勇  LV10 2020年5月22日
最近浏览更多
zhangsan_lisi 9月18日
暂无贡献等级
quartz  LV8 7月1日
xiao1111  LV3 6月18日
郭宇航裹裹  LV5 6月7日
wangbh1234  LV1 6月6日
2411307984  LV1 5月8日
hhxq0902 4月20日
暂无贡献等级
jiemomo  LV12 2023年11月3日
廖业贵  LV18 2023年10月17日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友