JSF2 SessionBean должен быть инициализирован перед доступом к странице - PullRequest
1 голос
/ 27 апреля 2011

Мы используем JSF2 и Tomcat6. Нам нужно инициализировать сессионный компонент со значениями бэкэнда, прежде чем пользователь получит доступ к первой странице. Могу ли я знать, как это сделать?

Ответы [ 2 ]

0 голосов
/ 19 августа 2011

Строго говоря, то, что вы просите, невозможно.Сессия создается ровно после того, как пользователь выполнит свой первый запрос.Как правило, вы не можете создавать сеансы заранее для пользователей, которые никогда не запрашивали ни одной страницы на вашем сервере.

Любой компонент сессионной области, на который ссылается страница, будет инициализирован во время первого вызова этой страницы, и тольково время этого первого звонка.Это лучшее, что вы можете получить.

( Если вы на самом деле имеете в виду SessionBean, а не управляемый bean-объект сессионной области, то все немного по-другому. Поскольку вы не использовали тег EJB на вашемвопрос, я полагаю, это последний.)

0 голосов
/ 29 апреля 2011

Если вы просто хотите получить доступ к общим данным в области сеанса со страницы, вы можете

  • написать сессионный компонент только для этих данных
  • использовать этот сессионный компонент во всехстраницы, которым нужен доступ к этим данным;странице не нужно использовать только один bean-компонент, вы можете использовать некоторый bean-компонент для большинства специфичных для страницы данных и один для общих данных
  • использовать этот сессионный bean-компонент в качестве «управляемого свойства» (аннотация @ManagedProperty в jsf2)во всех бобах, которым требуется доступ к этим общим данным
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...