¿Cuál es la diferencia entre redirigir y navegar / avanzar y cuándo usar qué?
¿Cuál es la diferencia entre una navegación en JSF?
FacesContext context = FacesContext.getCurrentInstance();
context.getApplication().getNavigationHandler().handleNavigation(context, null, url);
y una redirección
HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
response.sendRedirect(url);
¿Y cómo decidir cuándo usar qué?
El problema con la navegación es que la URL de la página no cambia a menos quefaces-redirect=true
se agrega a la cadena de consulta de la URL de navegación. Sin embargo, en mi caso anexandofaces-redirect=true
genera un error si quiero redirigir a una página que no sea JSF como una página HTML simple.
Y otra opción es como sugirió BalusC enError de redireccionamiento JSF 2.0