Я никогда не пытался отправить перенаправление таким способом, потому что это не стандартное решение для навигации в JSF2.
Вот несколько методов, которые будут работать правильно в среде JSF 2.0:
1. Укажите команду перенаправления в навигационной ссылке
Присоедините ?faces-redirect=true
к вашей навигации, и это должно сделать работу.
public String someAction(){
// Logic here
return "newPage" + "?faces-redirect=true"
}
<h:form id = "form">
<h:inputText>...</h:inputText>
<h:commandButton action = "#{controller.someAction}" />
</h:form>
После обработки логина в someAction
навигационный поток будет перенаправлен на newPage.xhtml
. Все, что вам нужно сделать, это правильно вызвать действие из формы пользовательского интерфейса.
2. Укажите перенаправление через внешний контекст
Этот метод ближе к тому, что вы ищете:
public void someAction(){
// Logic here
try{
FacesContext.getCurrentInstance().getExternalContext().redirect("newPage");
} catch (Exception e){
e.getMessage();
}
}