Existe-t-il un moyen de rediriger page vers une autre page à partir de la méthode Java?
Je ne peux que transmettre en utilisant:
FacesContext.getCurrentInstance().getExternalContext().dispatch("/foo.xhtml");
ou en utilisant les règles de navigation de faces-config.xml
.
Avez-vous des idées?
Vous ne savez pas trop ce que vous recherchez, mais la ExternalContext#dispatch()
effectue uniquement un transfert, pas une redirection. Vous voudriez utiliser ExternalContext#redirect()
à la place.
externalContext.redirect("foo.xhtml");
ou même externe (ce qui n'est pas possible avec l'envoi)
externalContext.redirect("http://stackoverflow.com");
Vous voudriez normalement faire cela dans la méthode d'action de bean.
Puisque vous avez mentionné JavaScript dans les commentaires, voici comment vous pouvez rediriger à l'aide de JS:
window.location = "foo.xhtml";
// Or
window.location = "http://stackoverflow.com";
FacesContext.getCurrentInstance().getApplication().getNavigationHandler().handleNavigation(FacesContext.getCurrentInstance(), null, "page.xhtml");
Fonctionne aussi bien.