使用httpsession并由AJAX调用时,Session是新的

时间:2016-08-04 02:36:18

标签: java spring spring-mvc

我使用httpsession来保存对象购物车。如果我正常访问页面,Spring MVC会使用当前会话,这很好。

问题是我使用AJAX来调用控制器和Spring MVC中的动作来创建一个新会话。会话中的属性将被删除:

@RequestMapping(value = "/product/cart/add", method = RequestMethod.POST,
            produces = MediaType.APPLICATION_JSON_VALUE,
            consumes = MediaType.APPLICATION_JSON_VALUE)
public @ResponseBody Integer addItemToCart(@RequestBody ProductDTO product, HttpSession session){
    logger.info(session.isNew());
    CartDTO cart = (CartDTO) session.getAttribute("CART");
    if(cart == null){
        cart = new CartDTO();
    }
    cart.addItem(product, 1);
    session.setAttribute("CART", cart);
    logger.info(cart.toString());
    return cart.getCart().size();
}

我试图找到导致这种情况的原因,但我们无法弄明白。

0 个答案:

没有答案