1.获取cookie中的购物车
public Cart getCartFromCookie() throws Exception{
cart=null;
HttpServletRequest request = ServletActionContext.getRequest();
ObjectMapper mapper=new ObjectMapper();
Cookie[] cookies = request.getCookies();
if(cookies!=null&&cookies.length>0){
for (Cookie cookie : cookies) {
if(Constants.BUYER_CART.equals(cookie.getName())){
//获得购物车存放的cookie
String value =URLDecoder.decode(cookie.getValue(), "UTF-8");
if(value==null || !StringUtils.isNotBlank(value)){
break;
}
cart = mapper.readValue(value, Cart.class);
break;
}
}
}
return cart;
}
2.填充购物车中的数据
public void fullCart(Cart cart){
//对数据进行填充
for (CartItem item : cart.getList()) {
Long id=item.getSku().getId();
Sku sku= new Sku();
sku = skuBusi.getSkuById(id);
Product product=pbusi.get(sku.getProduct().getId());
sku.setProduct(product);
item.setSku(sku);
}
}
3.将购物车返回到cookie中
public void cookieBack(Cart cart) throws Exception{
HttpServletResponse response = ServletActionContext.getResponse();
ObjectMapper mapper=new ObjectMapper();
//将对象放回cookie中
StringWriter str=new StringWriter();
try {
mapper.writeValue(str, cart);
} catch (Exception e) {
e.printStackTrace();
}
String value=URLEncoder.encode(str.toString(), "UTF-8");
Cookie cookie=new Cookie(Constants.BUYER_CART, value);
cookie.setPath("/");
cookie.setMaxAge(60*60*24);
response.addCookie(cookie);
}