从 Java bean 重定向 JSF 页面

发布于 2024-11-06 10:15:25 字数 255 浏览 0 评论 0原文

有没有办法从Java方法重定向页面到其他页面?

我只能使用以下方式转发它:

FacesContext.getCurrentInstance().getExternalContext().dispatch("/foo.xhtml");

或使用faces-config.xml的导航规则。

你有什么想法吗?

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?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

雨轻弹 2024-11-13 10:15:25

不确定您想要什么,但 ExternalContext#dispatch() 只执行转发,而不执行重定向。您想使用 ExternalContext#redirect() 相反。

externalContext.redirect("foo.xhtml");

甚至外部(这对于调度是不可能的)

externalContext.redirect("http://stackoverflow.com");

您通常希望在 bean 的操作方法中执行此操作。


既然您在评论中提到了 JavaScript,那么以下是如何使用 JS 进行重定向的方法:

window.location = "foo.xhtml";
// Or
window.location = "http://stackoverflow.com";

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";
梦里南柯 2024-11-13 10:15:25
FacesContext.getCurrentInstance().getApplication().getNavigationHandler().handleNavigation(FacesContext.getCurrentInstance(), null, "page.xhtml");

效果也一样。

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

Works just as well.

甜尕妞 2024-11-13 10:15:25

请尝试调用以下静态函数:

String url = "/meta/default/inbox"; // Your URL here

FacesContext.getCurrentInstance().getExternalContext().redirect(url);

please try with the call to the following static function:

String url = "/meta/default/inbox"; // Your URL here

FacesContext.getCurrentInstance().getExternalContext().redirect(url);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文