如何在JSF中获取当前页面的URL?

时间:2013-12-05 15:11:54

标签: jsf url jsf-2

有没有办法获取加载页面的URL?

我想要加载的页面的URL,在我的控制器中,我将在init()方法中调用方法getUrlOfPage()。

我需要URL源将其用作输出中的上下文的输入。

如何获取网页的网址?

1 个答案:

答案 0 :(得分:22)

可由HttpServletRequest#getRequestURL()(带域名)或getRequestURI()(无域名)使用。 HttpServletRequest本身由ExternalContext#getRequest()提供。

因此,所以:

HttpServletRequest request = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
String url = request.getRequestURL().toString();
String uri = request.getRequestURI();

或者,如果您的bean是请求作用域,那么这也是可能的:

@ManagedProperty("#{request.requestURL}")
private StringBuffer url; // +setter

@ManagedProperty("#{request.requestURI}")
private String uri; // +setter

另见