JSF重定向到带参数的另一个页面

时间:2011-03-17 14:00:11

标签: java jsf

我正在重定向到另一页:

String uri = "../test/planOutput.jsf?job_id=121250";
FacesContext.getCurrentInstance().getExternalContext().dispatch(uri);

它可以,但URL不会改变, 我必须看到带有参数的新网址。

解决方案是什么?

1 个答案:

答案 0 :(得分:6)

您根本没有将请求重定向到其他目标。您正在将请求分派给其他来源。使用ExternalContext#redirect()代替ExternalContext#dispatch()

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

重定向基本上指示webbrowser在给定的URL上触发新的HTTP请求。这也是为什么你看到URL更改反映在webbrowser的地址栏中的原因。调度基本上指示Web服务器为当前请求/响应使用不同的源。由于这是在内部发生的,并且不会在新的HTTP请求中结束,因此webbrowser对更改一无所知,地址栏也不会更改。