📄 cartaction.java
字号:
package com.tarena.shoppingcar.action;import java.util.HashMap;import java.util.HashSet;import java.util.Map;import java.util.Set;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.action.ActionMessage;import org.apache.struts.action.ActionMessages;import org.apache.struts.actions.LookupDispatchAction;import com.tarena.shoppingcar.entity.Cart;import com.tarena.shoppingcar.entity.Item;import com.tarena.shoppingcar.entity.User;public class CartAction extends LookupDispatchAction { @Override protected Map getKeyMethodMap() { Map<String, String> map = new HashMap<String, String>(); map.put("submit.modify", "modifyNumber"); map.put("submit.delete", "deleteSelectedItem"); map.put("submit.clear", "clear"); map.put("submit.over", "spend"); map.put("submit.buy", "buy"); return map; } public ActionForward modifyNumber(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { HttpSession session = request.getSession(); Cart car = (Cart) session.getAttribute("car"); for (Integer i : car.getItems().keySet()) { Item item = car.getItems().get(i); String id = i.toString(); int amount = Integer.parseInt(request.getParameter(id)); item.setAmount(amount); car.modifyItemNumber(item); } session.setAttribute("car", car); return mapping.findForward("success"); } public ActionForward deleteSelectedItem(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { ActionForward forward = mapping.findForward("success"); HttpSession session = request.getSession(); Cart car = (Cart) session.getAttribute("car"); try { HashMap<Integer, Item> items = car.getItems(); Set<Integer> set = items.keySet(); Set<Integer> ii = new HashSet<Integer>(); // 迭代找出要删除的定单项item for (Integer a : set) { Item item = items.get(a); String pname = item.getProduct().getPname(); System.out .println(pname + "====" + request.getParameter(pname)); if (request.getParameter(pname) != null) { ii.add(a); // car.removeItemByProductId(a); } } // 迭代删除找出的定单项item for (Integer i : ii) { car.removeItemByProductId(i); } } catch (Exception e) { e.printStackTrace(); forward = mapping.findForward("error"); } session.setAttribute("car", car); return forward; } public ActionForward clear(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { HttpSession session = request.getSession(); Cart car = (Cart) session.getAttribute("car"); car.clear(); session.setAttribute("car", car); return mapping.findForward("success"); } public ActionForward spend(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { ActionForward forward = null; try { HttpSession session = request.getSession(); Cart car = (Cart) session.getAttribute("car"); User user = (User) session.getAttribute("user"); if (car == null || car.isEmpty()) { forward = mapping.findForward("message"); } else if (user == null) { String path = request.getServletPath(); session.setAttribute("path", path); forward = mapping.findForward("login"); } else { forward = mapping.findForward("order"); } } catch (Exception e) { e.printStackTrace(); saveErrors(request, getMessages("product.spend")); forward = mapping.findForward("error"); } return forward; } public ActionForward buy(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { ActionForward forward = mapping.findForward("buy"); return forward; } private ActionMessages getMessages(String key) { ActionMessages errors = new ActionMessages(); ActionMessage message = new ActionMessage(key); errors.add("error", message); return errors; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -