⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 shoppingcartaction.java

📁 项目是实现网络购物功能
💻 JAVA
字号:
package com.tarena.shoppingcart.action;

import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
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.tarena.shoppingcart.biz.ShoppingCartBiz;
import com.tarena.shoppingcart.model.Cart;
import com.tarena.shoppingcart.model.Order;
import com.tarena.shoppingcart.model.Product;
import com.tarena.shoppingcart.model.User;
import com.tarena.shoppingcart.form.UserForm;
import com.tarena.shoppingcart.util.ShoppingCartFactory;

public class ShoppingCartAction extends MappingDispatchAction {
	private ShoppingCartBiz biz = ShoppingCartFactory.getShoppingCartBiz();
	
	/**
	 * 获取数据库中的商品信息并保存到请求当中
	 */
	public ActionForward listProduct(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		try {
			request.setAttribute("products", biz.listProducts());
			return mapping.findForward("success");
		} catch (Exception e) {
			e.printStackTrace();
			request.setAttribute("message", "message.system.list.error");
			request.setAttribute("link", "/listProduct.do");
			return mapping.findForward("error");
		}
	}
	
	/**
	 * 用户登陆,登陆成功时转向购物车信息页面;失败则转向登陆页面重新登陆
	 */
	public ActionForward login(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		UserForm userForm = (UserForm) form;
		User u;
		try {
			u = biz.login(userForm.getUser().getName(), userForm.getUser().getPassword());
			if(u!=null){
				request.getSession().setAttribute("user", u);
				return mapping.findForward("success");
			}else{
				request.setAttribute("msg", "用户名或密码不正确!");
				return mapping.findForward("toLogin");
			}
		} catch (Exception e) {
			e.printStackTrace();
			request.setAttribute("message", "message.system.login.error");
			request.setAttribute("link", "/toLogin.do");
			return mapping.findForward("error");
		}
		
	}
	
	/**
	 * 向购物车中添加商品
	 */
	public ActionForward addItemToCart(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		String id = request.getParameter("id");
		String name = request.getParameter("name");
		String price = request.getParameter("price");
		Product p = new Product();
		p.setId(Integer.valueOf(id));
		p.setName(name);
		p.setPrice(Double.valueOf(price));
		
		Cart cart = (Cart) request.getSession().getAttribute("cart");
		if(cart==null){
			cart = new Cart();
			request.getSession().setAttribute("cart", cart);
		}
		cart.addItem(p, 1);
		return mapping.findForward("success");
	}
	
	/**
	 * 修改购物车中条目的商品数目
	 */
	public ActionForward modifyNumber(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		Cart cart = (Cart) request.getSession().getAttribute("cart");

		Collection products = cart.getCartItem().keySet();
		Iterator it = products.iterator();
		while (it.hasNext()) {
			Integer id = (Integer) it.next();
			System.out.println(id+"==");
			System.out.println(request.getParameter(id + "")+"--");
			int number = Integer.parseInt(request.getParameter(id + ""));
			cart.modifyNumberByProductId(id, number);
		}
		return mapping.findForward("success");
	}

	/**
	 * 删除够物车中的选定条目
	 */
	public ActionForward deleteSelectedItem(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		Cart cart = (Cart) request.getSession().getAttribute("cart");

		String[] items = request.getParameterValues("items");
		if (items != null) {
			for (int i = 0; i < items.length; i++) {
				Integer id = (Integer) Integer.valueOf(items[i]);
				cart.deleteItemByProductId(id);
			}
		}
		return mapping.findForward("success");
	}

	/**
	 * 清空购物车
	 */
	public ActionForward clearCart(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		Cart cart = (Cart) request.getSession().getAttribute("cart");
		cart.clear();
		return mapping.findForward("success");
	}
	
	/**
	 * 转向结帐页面; 若用户已经登录,则转向定单确认页面;若用户尚未登录,则显示登陆页面要求登录
	 */
	public ActionForward operateOrder(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		if(null==request.getSession().getAttribute("user")){
			return mapping.findForward("toLogin");
		}
		return mapping.findForward("success");
	}

	/**
	 * 用户结帐; 成功则显示消息页面要求返回首页,并清空session中的购物车;失败则显示消息页面要求返回结帐页面重新操作
	 */
	public ActionForward generateOrder(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		UserForm userForm = (UserForm) form;
		Order order = new Order();
		Set items = new HashSet();
		Cart cart = (Cart) request.getSession().getAttribute("cart");
		items.addAll(cart.getCartItem().values());
		order.setItems(items);
		order.setCost(cart.getCost());
		order.setUser(userForm.getUser());
		try {
			request.setAttribute("no", biz.generateOrder(order));
			cart.clear();
			User user = (User) request.getSession().getAttribute("user");
			user.setAddress(userForm.getUser().getAddress());
			user.setPostCode(userForm.getUser().getPostCode());
			user.setEmail(userForm.getUser().getEmail());
			user.setHomePhone(userForm.getUser().getHomePhone());
			return mapping.findForward("success");
		} catch (Exception e) {
			e.printStackTrace();
			request.setAttribute("message", "message.system.checkout.error");
			request.setAttribute("link", "/operateOrder.do");
			return mapping.findForward("error");
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -