gpt4 book ai didi

jsf - 为什么 NavigationHandler.handleNavigation() 不转发到 View ID?

转载 作者:行者123 更新时间:2023-12-04 21:15:16 26 4
gpt4 key购买 nike

在“RESTORE_VIEW”阶段运行的阶段监听器类中,我有一些这样的代码:

public void afterPhase(PhaseEvent event) {
FacesContext fc = event.getFacesContext();
NavigationHandler nh = fc.getApplication().getNavigationHandler();
nh.handleNavigation(fc, null, "/a/specific/path/to/a/resource.jspx");
}

导航到新 URL 在这里不起作用。发出的请求只会收到来自导航到的原始 JSPX 的响应。

像这样的代码工作正常:

public void afterPhase(PhaseEvent event) {
FacesContext fc = event.getFacesContext();
NavigationHandler nh = fc.getApplication().getNavigationHandler();
nh.handleNavigation(fc, null, "OUTCOME_DEFINED_IN_FACES_CONFIG_XML");
}

另外,第一个代码片段可以与 IceFaces Faces 提供程序一起使用,但不能与我需要使用的 Sun JSF 1.2 一起使用。我可以做些什么来修复代码,以便转发到特定的 URL 吗?

最佳答案

使用ExternalContext#dispatch()反而。

或者,如果它应该是一个重定向,使用 ExternalContext#redirect() .

它在 IceFaces 中工作一定是一个错误或特定于 impl 的“功能”。这不是什么NavigationHandler API 契约定义。

关于jsf - 为什么 NavigationHandler.handleNavigation() 不转发到 View ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2569425/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com