Я начинаю использовать JSF Flows, и после прочтения некоторых примеров и спецификаций у меня все заработало.
Я использую метод Потоки упаковки в каталогах, как описано в разделе 11.4.3.3 руководства спецификация. Это кажется проще и больше соответствует соглашениям об именах, уже принятым со времен JSF 2.0.
Ниже моя текущая структура каталогов. Идентификатор потока: wizard.
Я понимаю, что существует концепция выхода из потока путем вызова узла возврата.
Вы видите на изображении выше, что у меня нет представления узла возврата. Это просто мастер с кучей страниц, по которым можно перемещаться вперед и назад, с тем преимуществом, что мое состояние ManagedBean сохраняется.
Проблема в том, что я могу перейти на любую страницу своего приложения, а JSF по-прежнему поддерживает состояние этого потока. Если я вернусь на любую из страниц мастера, вся информация останется там, а это означает, что JSF никогда не удалял область потока.
Мои вопросы:
- Если у меня есть кнопка «завершить» commandButton, как мне сообщить JSF, что когда пользователь нажимает эту кнопку, он должен удалить текущую область потока?
- Что еще более важно, что, если у меня нет узла возврата? Как мне сообщить JSF, чтобы он отбрасывал состояние потока, если пользователь переходит к любому представлению* за пределами каталога потока? (по понятию "поток", я думал это уже стандартное поведение)
*Для ясности, я имею в виду другое представление JSF (другая страница в моем приложении). Я знаю, что он ничего не может сделать, если пользователь инициирует запрос на страницу за пределами моего приложения или за пределами области действия JSF.