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

时间:2015-02-05 05:36:41

标签: jsf jsf-2.2

我需要使用FacesContext在JSF中获取重定向的URL或ID。对于当前的URL,我正在使用。

String currentPage = FacesContext.getCurrentInstance().getViewRoot().getViewId();

1 个答案:

答案 0 :(得分:14)

您可以通过the referer header获得最近的ExternalContext#getRequestHeaderMap()

String referrer = externalContext.getRequestHeaderMap().get("referer"); 
// ...

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

即便如此,有时客户端应用程序也不会发送它。有关概述,请参阅此问题:In what cases will HTTP_REFERER be empty

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