2016-10-22 2 views
0

В моем совете контроллера я поставил одну модель объекта в HttpSession сессии:Как получить модель, сохраненную в сеансе с аннотацией параметра @ModelAttribute?

Map<String, Game> gamesMap = new HashMap<>(); 
gamesMap.put("1", new Game()); 

Games games = new Games(); 
games.setGames(gamesMap); 

session.setAttribute("games", games); 

Когда я пытаюсь получить этот объект с параметром @ModelAttribute games.getGames() возвращает меня всегда нуль вместо gamesMap я поставил перед.

RequestMapping(value = "test", method = RequestMethod.GET) 
public String test(@ModelAttribute("games") Games games) { 
    games.getGames(); // getGames() returns null instead of collection I've set before. 
} 

Я делаю что-то неправильно? Когда я использую сеанс и получаю его оттуда, он работает нормально, но я пытаюсь понять, почему он не работает с @ModelAttribute, который более чист.

ответ

0

Хорошо, я выяснил, в чем проблема. Spring только пытается привязать атрибут модели к параметру сеанса, если контроллер аннотируется с помощью @sessionattributes. Если он не обнаружил, что он создает новый экземпляр, в этом случае карта была нулевой.

Смежные вопросы