Подтвердить что ты не робот

Переадресация страницы JSF из java bean

Есть ли способ перенаправить страницу на другую страницу из Java метода?

Я могу только переслать, используя:

FacesContext.getCurrentInstance().getExternalContext().dispatch("/foo.xhtml");

или используя навигационные правила faces-config.xml.

Есть ли у вас идеи?

4b9b3361

Ответ 1

Не уверен, что вам нужно, но ExternalContext#dispatch() выполняет только переадресацию, а не перенаправление. Вместо этого вы хотите использовать ExternalContext#redirect().

externalContext.redirect("foo.xhtml");

или даже внешний (что невозможно при отправке)

externalContext.redirect("http://stackoverflow.com");

Обычно вы хотели бы сделать это в методе действий bean.


Поскольку вы упомянули JavaScript в комментариях, здесь вы можете перенаправить использование JS:

window.location = "foo.xhtml";
// Or
window.location = "http://stackoverflow.com";

Ответ 2

FacesContext.getCurrentInstance().getApplication().getNavigationHandler().handleNavigation(FacesContext.getCurrentInstance(), null, "page.xhtml");

Работает так же хорошо.