JSF 2 - Где бин @ViewScoped живет между запросами? - PullRequest
3 голосов
/ 18 июля 2011

Я пытаюсь лучше понять низкоуровневую работу bean-компонента @ViewScoped в JSF 2. Где сервер хранит bean-объект в области видимости между запросами?Я заметил, что мои bean-объекты в области видимости должны реализовывать Serializable, поэтому они должны быть сериализованы в каком-то месте.

Может кто-нибудь объяснить это или предоставить ссылку на документацию, которая объясняет это?

Я задаю вопрос, потому что я мог внести дефект, связанный с областью действия, в мойWebApp.Понимание того, как работает @ViewScoped, поможет мне исключить некоторые из возможных причин.

1 Ответ

6 голосов
/ 18 июля 2011

@ Бины ViewScoped хранятся в viewMap UIViewRoot:

UIViewRoot - это UIComponent, представляющий корень дерева UIComponent.Этот компонент отображает разметку как ответ на запросы Ajax.Он также служит корнем дерева компонентов ...

Фактически, вы можете получить доступ к этому представлению карты и заполнить ее значениями, используя:

facesContext.getViewRoot().getViewMap()...

Для получения дополнительной информации.информация, см. документ API JSF: http://javaserverfaces.java.net/nonav/docs/2.0/javadocs/javax/faces/component/UIViewRoot.html

...