如何使用FacesContext在JSF中获取以前的URL?

Lav*_*nya 8 jsf jsf-2.2

我需要在JSF中使用重定向的URL或id FacesContext.对于当前的URL,我正在使用.

String currentPage = FacesContext.getCurrentInstance().getViewRoot().getViewId();
Run Code Online (Sandbox Code Playgroud)

Bal*_*usC 17

最近可以得到的是referer通过ExternalContext#getRequestHeaderMap():

String referrer = externalContext.getRequestHeaderMap().get("referer"); 
// ...
Run Code Online (Sandbox Code Playgroud)

您应该记住,这是一个客户端控制的值,因此可以从客户端完全欺骗(即最终用户可以轻松编辑甚至删除它).

即便如此,有些情况下客户端应用程序也不会发送它.有关概述,请参阅此问题:HTTP_REFERER在什么情况下为空.

根据功能要求,您最好手动将其作为请求参数传递,或将其存储在视图或会话范围中.