📄 cartaction.java
字号:
package com.itcast.web.action.shopping;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.springframework.stereotype.Controller;
import com.itcast.bean.BuyCart;
import com.itcast.bean.BuyItem;
import com.itcast.bean.product.ProductInfo;
import com.itcast.bean.product.ProductStyle;
import com.itcast.service.product.ProductInfoService;
import com.itcast.utils.WebUtil;
import com.itcast.web.formbean.product.CartForm;
@Controller("/shopping/cart")
public class CartAction extends Action{
@Resource(name="productInfoServiceBean")
private ProductInfoService productInfoService;
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws Exception {
CartForm formbean = (CartForm)form;
BuyCart buyCart = (BuyCart)request.getSession().getAttribute("buycart");
if(buyCart==null){//如果当前session不存在购物车,就访问以前用户session里的购物车(一般是因为用户重新打开了一个浏览器,导致创建了一个新session)
String sid = WebUtil.getCookieByName(request, "buyCartID");
if(sid!=null){
HttpSession session = SiteSessionListener.getSession(sid);
if(session!=null){
buyCart = (BuyCart)session.getAttribute("buycart");
if(buyCart!=null){
SiteSessionListener.removeSession(sid);
request.getSession().setAttribute("buycart", buyCart);
WebUtil.addCookie(response, "buyCartID", request.getSession().getId(), request.getSession().getMaxInactiveInterval());
}
}
}
}
if(buyCart==null){
buyCart = new BuyCart();
request.getSession().setAttribute("buycart", buyCart);
WebUtil.addCookie(response, "buyCartID", request.getSession().getId(), request.getSession().getMaxInactiveInterval());
}
if(formbean.getProductid()!=null && formbean.getProductid()>0){
ProductInfo product = productInfoService.find(ProductInfo.class, formbean.getProductid());
if(product!=null){
ProductStyle currentStyle = null;
for(ProductStyle style : product.getStyles()){//找到对应id的样式
if(style.getVisible() && style.getId().equals(formbean.getStyleid())){
currentStyle = style;
break;
}
}
product.getStyles().clear();//清除所有样式,然后放入被选样式
if(currentStyle!=null) product.addProductStyle(currentStyle);
buyCart.addItem(new BuyItem(product, 1));//把商品放入购物车
}
}
request.setAttribute("buyCart", buyCart);
return mapping.findForward("cart");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -