Очистите сеанс JSF перед переходом на новый портлет - PullRequest
0 голосов
/ 19 октября 2011

В нашем приложении у нас есть портлет, определенный для каждой вкладки пользователя.

  • Мы используем портлеты JSF 1.2 +.
  • Я хочу очистить управляемые bean-компоненты сеанса FacesContext при переходе пользователя от одной вкладки к другой.Каков наилучший способ достичь этого?
    • Существует ли какая-либо функция выгрузки портлета, в которой мы можем написать код для удаления компонентов, управляемых сеансом, до того, как пользователь покинет вкладку (портлет).

1 Ответ

1 голос
/ 19 октября 2011

Поскольку вы используете JSF 1.2 и, следовательно, не можете воспользоваться новой областью просмотра, которая предназначена именно для этой цели, вам лучше всего взять MyFaces Tomahawk или MyFaces Orchestra . Вам нужно всего лишь вернуть ваши bean-компоненты "view" обратно из области сеанса в область запроса.

Если вы хотите смоделировать новую область просмотра JSF 2.0, т. Е. Бин живет до тех пор, пока вы взаимодействуете с одним и тем же видом, тогда вам нужно добавить <t:saveState> Томагавка в просмотр ссылки на bean-объект области запроса.

<h:form>
    <h:inputText value="#{bean.input}" />
    <h:commandButton value="Submit" action="#{bean.submit}" />
    <t:saveState value="#{bean}" />
</h:form>

Если вы хотите смоделировать новую область диалога CDI, которая может охватывать несколько представлений на одной вкладке браузера, вам нужно будет интегрировать Orchestra.

...