Перенаправление JSF 2 на первую страницу с помощью кнопки «Назад» или вставки копии URL (аутентификация не требуется)

У меня есть приложение JSF 2.0, которое используется для создания учетных записей с помощью самостоятельной регистрации. На первой странице есть такие поля, как имя, электронная почта, uid и т. д. Типично для любой регистрации, мы показываем страницу подтверждения (другие настраиваемые страницы между ними) и окончательную страницу успеха. Каждая страница отображается в JSF с использованием Faces-redirect=true, поэтому во всем процессе есть 3-4 страницы (фейслеты). В этом приложении я использую компонент поддержки SessionScoped для отображения промежуточных страниц/страницы подтверждения/конечной страницы и т. д. После завершения регистрации я удаляю компонент SessionScope из сеанса и аннулирую сеанс.

Проблема заключается в следующем: на странице подтверждения/средней странице и т. д. отображаются сведения о пользователе, введенные пользователем с первой страницы (с использованием EL из вспомогательного компонента: #sessionBean.firstName и т. д.). Итак, если Пользователь вводит этот URL-адрес напрямую в браузере (host/appName/confirmationPage.xhtml), страница загружается с пустыми значениями (поскольку Пользователь не перешел на первую страницу напрямую). Кроме того, после завершения регистрации, если пользователь нажимает кнопку «Назад», отображаются пустые значения (без кеша явно задано в классе фильтра, поэтому кеш здесь не используется, что является правильным поведением)

Как заставить пользователя перейти на первую страницу, если имя firstName и т. д. отсутствует. то есть, когда Пользователь попадает на страницу, убедитесь, что Пользователь попал на эту страницу только через первую страницу в этом сеансе?

Следует ли использовать класс фильтра? Или следует использовать событие prerenderview для проверки пустых значений и перенаправления их на первую страницу? Здесь нет «Входа пользователя», так как нет аутентификации. Я считаю, что это распространенный вариант использования, и я хотел бы знать, есть ли какая-либо передовая практика в JSF.


person user972391    schedule 15.01.2014    source источник
comment
возможный дубликат Как (и когда?), чтобы удалить компонент области сеанса в JSF 2.0   -  person BalusC    schedule 16.01.2014
comment
Мастер PrimeFaces — это то, что вам нужно   -  person Michele Mariotti    schedule 16.01.2014