Я пытаюсь сохранить некоторые данные внутри атрибута сеанса, но я испытываю некоторые странные проблемы при попытке обновить их впоследствии. Я использую Spring boot 1.2.4Весеннее обновление значений @SessionAttributes
Я создал контрольный контроллер для описания проблемы.
@RestController
@SessionAttributes(TestController.ATTRIBUTE)
public class TestController {
public static final String ATTRIBUTE = "attribute";
@ResponseStatus(value = HttpStatus.OK)
@RequestMapping(value = "/set/{value}", method = RequestMethod.POST)
public void set(@PathVariable Long value, HttpSession session) {
System.out.println("Set value to: " + value + " session id:\t" + session.getId());
session.setAttribute(ATTRIBUTE, value);
}
@ResponseStatus(value = HttpStatus.OK)
@RequestMapping(value = "/get", method = RequestMethod.GET)
public void get(HttpSession session) {
System.out.println("Value: " + session.getAttribute(ATTRIBUTE) + " session id:\t\t" + session.getId());
}
}
Например, если я называю эти методы, как это:
localhost:8080/set/1
localhost:8080/set/2
localhost:8080/get
Я ожидаю, чтобы получить выходной сигнал, который выглядит следующим образом (сеансовые идентификаторы исключены):
Set value to: 1
Set value to: 2
Value: 2
Однако то, что я (включая идентификационные данные сессии):
Set value to: 1 session id: 9D6F9948E81654E4087F418EF6BF5157
Set value to: 2 session id: 9D6F9948E81654E4087F418EF6BF5157
Value: 1 session id: 9D6F9948E81654E4087F418EF6BF5157
Распечатайте идентификатор sesssion в методах get & set, чтобы убедиться, что вы смотрите на правильную сессию – 6ton
Я обновил вопрос с помощью идентификаторов сеанса. Это тот же сеанс. – Edd