web-dev-qa-db-fra.com

Page JSF redirigeant à partir d'un bean Java

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? 

33
gaffcz

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";
59
BalusC
FacesContext.getCurrentInstance().getApplication().getNavigationHandler().handleNavigation(FacesContext.getCurrentInstance(), null, "page.xhtml");

Fonctionne aussi bien.

0
mcrius