Разница между областью просмотра и запроса в управляемых bean-компонентах

Что означает область просмотра? Может ли кто-нибудь объяснить это, чтобы я мог понять, чем он отличается от области запроса?


person Maddy    schedule 17.05.2011    source источник


Ответы (1)


Бин @ViewScoped живет ровно столько же, сколько и представление JSF. Обычно он начинается со свежего нового запроса GET или с действия навигации, а затем будет существовать до тех пор, пока конечный пользователь отправит любую форму POST в представлении методу действия, который возвращает null или void (и, таким образом, возвращается к такая же точка зрения). Как только вы обновите страницу или вернете результат навигации, отличный от null (даже пустую!), Область просмотра закроется.

Bean @RequestScoped живет ровно столько, сколько HTTP-запрос. Таким образом, он будет очищен к концу каждого запроса и воссоздан при каждом новом запросе, тем самым теряя все измененные свойства.

Таким образом, bean-компонент @ViewScoped особенно полезен в расширенных представлениях с поддержкой Ajax, которым необходимо запоминать (измененное) состояние представления в запросах Ajax. @RequestScoped один будет воссоздаваться при каждом запросе Ajax и, таким образом, не сможет запомнить все измененное состояние представления. Обратите внимание, что bean-компонент @ViewScoped не разделяет данные между разными вкладками / окнами браузера в одном сеансе, как bean-компонент @SessionScoped. У каждого представления есть свой уникальный @ViewScoped bean.

Смотрите также:

person BalusC    schedule 17.05.2011
comment
@sessionscope создает множество проблем, особенно когда он разделяет сеанс с вкладками в браузере. Спасибо, BalusC. - person Makky; 21.04.2013
comment
@Makky: Просто не используйте @SessionScoped для запроса или просмотра данных. См. Также stackoverflow.com/ questions / 7031885 / - person BalusC; 22.04.2013