📄 shoppingcartaction.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 + -