如何从浏览器URL获取我正在运行的脚本页面

时间:2011-11-16 18:28:50

标签: java jsf richfaces

JSF中是否还有从地址栏中获取URL(脚本名称),该地址栏指的是我所在的页面?会是什么样的?

1 个答案:

答案 0 :(得分:1)

要在支持bean中获取请求URI,您需要从JSF的封面下获取HttpServletRequest

HttpServletRequest request = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
// ...

它提供several methods来获取有关请求的信息,例如getRequestURI()。其中大多数也可以通过ExternalContextgetRequestXXX()方法获得,但请求URI不是。

在视图中,您可以#{request}获取它。 E.g。

<a href="#{request.requestURI}">Click here to navigate recursively</a>

或者,如果您实际对JSF视图ID(您自己说的“脚本名称”)感兴趣,那么请使用UIViewRoot#getViewId()

String viewId = FacesContext.getCurrentInstance().getViewRoot().getViewId();
// ...

或在视图中:

<a href="#{request.contextPath}#{facesContext.viewRoot.viewId}">Click here to navigate recursively</a>

或没有上下文路径:

<h:link outcome="#{facesContext.viewRoot.viewId}" value="Click here to navigate recursively" />

相关:

相关问题