Is there some way how to redirect page to other page from Java method?
I'm able only to forward it using:
FacesContext.getCurrentInstance().getExternalContext().dispatch("/foo.xhtml");
or using navigation-rules of faces-config.xml
.
Do you have any ideas?
Not sure what you're after, but the ExternalContext#dispatch()
does only a forward, not a redirect. You'd like to use ExternalContext#redirect()
instead.
externalContext.redirect("foo.xhtml");
or even external (which is not possible with dispatch)
externalContext.redirect("http://stackoverflow.com");
You'd normally like to do this in bean's action method.
Since you mentioned JavaScript in the comments, here's how you could redirect using JS:
window.location = "foo.xhtml";
// Or
window.location = "http://stackoverflow.com";
FacesContext.getCurrentInstance().getApplication().getNavigationHandler().handleNavigation(FacesContext.getCurrentInstance(), null, "page.xhtml");
Works just as well.
Juan hernan jaime arias
please try with the call to the following static function:
String url = "/meta/default/inbox"; // Your URL here
FacesContext.getCurrentInstance().getExternalContext().redirect(url);
来源:https://stackoverflow.com/questions/5955130/jsf-page-redirecting-from-java-bean