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

📄 viewproductaction.java

📁 巴巴运动网源码 传智博客出品 不全 一部分代码 可以参考
💻 JAVA
字号:
package com.itcast.web.action.product;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

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.product.ProductInfo;
import com.itcast.bean.product.ProductType;
import com.itcast.service.product.ProductInfoService;
import com.itcast.utils.WebUtil;
import com.itcast.web.formbean.product.FrontProductForm;
/**
 * 浏览商品
 * @author itcast@sohu.com
 *
 */
@Controller("/product/view")
public class ViewProductAction extends Action {
	@Resource(name="productInfoServiceBean")
	private ProductInfoService productInfoService;

	@Override
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) throws Exception {
		FrontProductForm formbean = (FrontProductForm) form;
		ProductInfo product = productInfoService.find(ProductInfo.class, formbean.getProductid());
		if(product==null){
			request.setAttribute("message", "获取不到你需要浏览的产品");
			request.setAttribute("urladdress", "/");
			return mapping.findForward("message");
		}
		WebUtil.addCookie(response, "productViewHistory", 
				buildViewHistory(request, formbean.getProductid()), 30*24*60*60);
		List<ProductType> stypes = new ArrayList<ProductType>();
		ProductType parent = product.getType();
		while(parent!=null){
			stypes.add(parent);
			parent = parent.getParent();
		}
		request.setAttribute("product", product);
		request.setAttribute("stypes", stypes);
		return mapping.findForward("product");
	}
	
	public String buildViewHistory(HttpServletRequest request, Integer currentProductId){
		//23-2-6-5
		//1.如果当前浏览的id已经在浏览历史里了,我们要把移到最前面
		//2.如果浏览历史里已经达到了10个产品了,我们需要把最选进入的元素删除
		String cookieValue = WebUtil.getCookieByName(request, "productViewHistory");
		LinkedList<Integer> productids = new LinkedList<Integer>();
		if(cookieValue!=null && !"".equals(cookieValue.trim())){
			String[] ids = cookieValue.split("-");			
			for(String id : ids){
				productids.offer(new Integer(id.trim()));
			}
			if(productids.contains(currentProductId)) productids.remove(currentProductId);
			if(productids.size()>=2) productids.poll();
		}
		productids.offer(currentProductId);
		StringBuffer out = new StringBuffer();
		for(Integer id : productids){
			out.append(id).append('-');
		}
		out.deleteCharAt(out.length()-1);
		return out.toString();
	}
}

⌨️ 快捷键说明

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