JSF page redirecting from java bean

拜拜、爱过 提交于 2019-11-28 20:52:02

问题


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?


回答1:


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";



回答2:


FacesContext.getCurrentInstance().getApplication().getNavigationHandler().handleNavigation(FacesContext.getCurrentInstance(), null, "page.xhtml");

Works just as well.




回答3:


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!