JSF重定向到带参数的其他页面

Riv*_*vki 2 java jsf

我正在重定向到另一个页面:

String uri = "../test/planOutput.jsf?job_id=121250";
FacesContext.getCurrentInstance().getExternalContext().dispatch(uri);
Run Code Online (Sandbox Code Playgroud)

它工作正常,但URL没有改变,我必须看到带有参数的新URL.

解决办法是什么?

Bal*_*usC 6

您根本没有将请求重定向到其他目标.您正在将请求分派给其他来源.用ExternalContext#redirect()而不是ExternalContext#dispatch().

FacesContext.getCurrentInstance().getExternalContext().redirect(uri);
Run Code Online (Sandbox Code Playgroud)

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