Сессия в весеннем отдыхе - PullRequest
0 голосов
/ 05 февраля 2020

Здравствуйте, у меня проблема с сеансом в весенний период. Каждый раз, когда я получаю нулевое значение в моем сеансе, это мой класс

        @GetMapping("/shoppingCart/addProduct/{productId}")
    public ResponseEntity<Cart> addProductToCart(@PathVariable("productId") Long productId,HttpServletRequest  request) throws AppException {
        Product product = productService.getProduct(productId);

        Cart cart= (Cart) request.getSession().getAttribute("myCart");

        // If null, create it.
        if (cart == null) {
            cart = new Cart();
            request.getSession().setAttribute("myCart", cart);
        }

        cart.addProduct(product, 1);
        return new ResponseEntity<>(cart,HttpStatus.CREATED);
    }

    @GetMapping("/shoppingCart")
    public ResponseEntity<Cart> shoppingCart(HttpServletRequest  request) {
     cart = (Cart) request.getSession().getAttribute("myCart");
     return new ResponseEntity<>(cart,HttpStatus.CREATED);
    }

эта строка request.getSession().getAttribute("myCart") возвращает null, а также когда я добавляю продукт в моей корзине впервые сохраняется в сеансе, после чего, когда я пытаюсь добавить другой товар, мой сеанс пуст.

Спасибо

1 Ответ

0 голосов
/ 06 февраля 2020

Службы RestFul изначально созданы для того, чтобы не иметь состояния, поэтому вам не следует использовать сеанс в Rest API в первую очередь. Но если вам как-то необходимо использовать сеанс согласно бизнес-логике c, тогда вам следует использовать Spring MVC вместо REST, то есть вы должны использовать @Controller аннотацию в классе, а не @RestController.

...