Как "session.getAttribute" при использовании @SessionAttributes - PullRequest
1 голос
/ 30 мая 2011

Я знаю, что приведенный ниже объект "домашнее животное" сохраняется в сеансе с помощью @SessionAttributes, но могу ли я использовать session.getAttribute? (например, Pet Pet = (Pet) session.getAttribute ("pet")). Я не уверен, почему мне не нужен «ключ сессии». (Мы должны определить ключ при использовании session.setAttribute ("id", id))

    @Controller
    @RequestMapping("/editPet.do")
    @SessionAttributes("pet")
    public class EditPetFormController {

        @Autowired
        private final Clinic clinic;

        @RequestMapping(method = RequestMethod.GET)
        public String setupForm(@RequestParam("petId") int petId, ModelMap model) {
            Pet pet = this.clinic.loadPet(petId);
            model.addAttribute("pet", pet);
            return "petForm";
        }

1 Ответ

3 голосов
/ 30 мая 2011

Атрибуты сеанса, настроенные с помощью @SessionAttributes, предназначены для доступа к атрибутам модели, а не для прямого вызова методов Session, поэтому их имена генерируются из имен атрибутов модели автоматически.

По умолчанию имя атрибута сеанса совпадает с именем атрибута модели, поэтому вы можете получить к нему доступ как session.getAttribute("pet") (см. DefaultSessionAttributeStore).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...