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

📄 shoppingcartactions.java

📁 采用Struts框架做的网上啤酒买卖系统
💻 JAVA
字号:
package com.cavaness.beer4all.order;import java.io.IOException;import java.text.Format;import java.text.NumberFormat;import java.util.*;import javax.servlet.ServletException;import javax.servlet.http.*;import org.apache.struts.action.*;import org.apache.struts.actions.DispatchAction;import com.cavaness.beer4all.service.Beer4AllService;import com.cavaness.beer4all.common.view.UserView;import com.cavaness.beer4all.catalog.view.ItemView;import com.cavaness.beer4all.framework.UserContainer;import com.cavaness.beer4all.util.Constants;import com.cavaness.beer4all.framework.ShoppingCartItem;import com.cavaness.beer4all.framework.ShoppingCart;import com.cavaness.beer4all.framework.Beer4AllBaseDispatchAction;//这个类执行所有购物车的功能,它通过Beer4AllBaseDispatchAction基类继承DispatchActionpublic class ShoppingCartActions extends Beer4AllBaseDispatchAction {  //创建一个用户信息库  public ActionForward view(ActionMapping mapping,                            ActionForm form,                            HttpServletRequest request,                            HttpServletResponse response)    throws Exception {    //创建一个用户信息    UserContainer userContainer = getUserContainer(request);    //返回一个成功状态的映射    return mapping.findForward(Constants.SUCCESS_KEY);  }  //这个方法依据请求信息更新购物车中的商品信息  public ActionForward update(ActionMapping mapping,                              ActionForm form,                              HttpServletRequest request,                              HttpServletResponse response)    throws Exception {     //更新商品列表     updateItems(request);     //更新商品数量     updateQuantities(request);     //返回一个成功状态的映射     return mapping.findForward(Constants.SUCCESS_KEY);  }  //这个方法向购物车中添加一个商品类别和数量  public ActionForward addItem(ActionMapping mapping,                               ActionForm form,                               HttpServletRequest request,                               HttpServletResponse response)    throws Exception {    //获取用户信息库    UserContainer userContainer = getUserContainer(request);    //获取商品ID    String itemId = request.getParameter( Constants.ID_KEY );    //获取商品数量    String qtyParameter = request.getParameter( Constants.QTY_KEY );    //获取商品包装单位    String uomParameter = request.getParameter( Constants.UOM_KEY );    //默认商品数量为1    int quantity = 1;    if(qtyParameter != null) {      //获取用户的Locale信息      Locale userLocale = userContainer.getLocale();      //将输入格式定为用户所支持的格式      Format nbrFormat = NumberFormat.getNumberInstance(userLocale);      try {        //获取用户发送的商品数量信息        Object obj = nbrFormat.parseObject(qtyParameter);        quantity = ((Number)obj).intValue();      }      catch(Exception ex) {        ex.printStackTrace();      }    }    //得到一个指定服务    Beer4AllService serviceImpl = this.getBeer4AllService();    //依据商品ID获取商品信息    ItemView ItemView = serviceImpl.getItemById( itemId );    //添加一个一个商品类别和数量的信息到购物车    userContainer.getCart().addItem(new ShoppingCartItem(ItemView, quantity));    //返回一个成功状态的映射    return mapping.findForward(Constants.SUCCESS_KEY);  }  //更新购物车中的商品列表信息,将不需要的商品删除  private void updateItems(HttpServletRequest request) {    //获取需要被删除的商品ID    String[] deleteIds = request.getParameterValues("deleteCartItem");    //建立需要被删除的商品ID列表    if(deleteIds != null && deleteIds.length > 0) {      //获取需要被删除的商品类数量      int size = deleteIds.length;      //创建一个商品ID列表      List itemIds = new ArrayList();      for(int i = 0;i < size;i++) {        itemIds.add(deleteIds[i]);      }      //获取用户信息库      UserContainer userContainer = getUserContainer(request);      //从用户的购物车中删除需要被删除的商品      userContainer.getCart().removeItems(itemIds);    }  }  //更新购物车中的商品的购买数量  private void updateQuantities(HttpServletRequest request) {    //将客户请求中的参数名转化为一个枚举    Enumeration enum = request.getParameterNames();    //遍历枚举中的每一个参数名    while(enum.hasMoreElements()) {      String paramName = (String)enum.nextElement();      //当参数名由"qty_"为开头时      if(paramName.startsWith("qty_")) {        //截取该参数中第4到最后一位的字符串,即需要更新的商品ID        String id = paramName.substring(4, paramName.length());        //获取该参数        String qtyStr = request.getParameter(paramName);        //如果该商品ID和数量都存在        if(id != null && qtyStr != null) {          //获取用户的购物车          ShoppingCart cart = getUserContainer(request).getCart();          //输出字符串          System.out.println( "id = " + id + " qty = " + qtyStr );          //更新购物车中商品的数量为用户的请求值          cart.updateQuantity(id, Integer.parseInt(qtyStr));        }      }    }  }  //校验用户是否有购买商品的权限  public ActionForward checkout(ActionMapping mapping,                               ActionForm form,                               HttpServletRequest request,                               HttpServletResponse response)    throws Exception {      // Make sure the user is logged in first      // Just forward to the checkout page      //返回一个成功状态的映射      return mapping.findForward( Constants.SUCCESS_KEY );    }  //确认操作  public ActionForward finalizeOrder(ActionMapping mapping,                               ActionForm form,                               HttpServletRequest request,                               HttpServletResponse response)    throws Exception {      // Just forward to the order confirmation page      return mapping.findForward( Constants.CONFIRM_ORDER_KEY );    }}

⌨️ 快捷键说明

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