Qual é a diferença entre redirecionamento e navegação / encaminhamento e quando usar o que?
Qual é a diferença entre uma navegação no JSF
FacesContext context = FacesContext.getCurrentInstance();
context.getApplication().getNavigationHandler().handleNavigation(context, null, url);
e um redirecionamento
HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
response.sendRedirect(url);
e como decidir quando usar o que?
O problema com a navegação é que o URL da página não é alterado, a menosfaces-redirect=true
é adicionado à cadeia de consulta do URL de navegação. No entanto, no meu caso, acrescentandofaces-redirect=true
Lança erro se eu quiser redirecionar para uma página não-JSF como uma página HTML simples.
E outra opção é como BalusC sugerido emErro de redirecionamento do JSF 2.0