JSF вопрос навигации - PullRequest
2 голосов
/ 02 июня 2011

У меня есть проект JSF2 со страницей «просмотр пользователя», которая читает текущего выбранного пользователя из сессионного компонента; userHandler.selectedUser.

Страница предназначена для посещения путем навигации по ссылкам в приложении.

Однако, если пользователь пытается перейти по странице «Просмотр пользователя» по этому URL-адресу ...

http://localhost:8080/webapp/userView.jsf

... они видят страницу без данных (потому что в userHandler нет выбранного пользователя).

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

Спасибо, Rob

1 Ответ

4 голосов
/ 02 июня 2011

Вы хотите подключить событие preRenderView, а затем отправить перенаправление, если это так.

<f:metadata>
    <f:event type="preRenderView" listener="#{bean.preRenderView}" />
</f:metadata>

с

public void preRenderView() throws IOException {
    if (userHandler.getSelectedUser() == null) {
        FacesContext.getCurrentInstance().getExternalContext().redirect("home.jsf");
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...