在 JSF 支持 Bean(托管 Bean、焊接 Bean,无关紧要)中,我可以通过调用获取客户端所在的上下文路径
FacesContext ctx = FacesContext.getCurrentInstance();
String path = ctx.getExternalContext().getRequestContextPath();
这给了我客户端当前访问的路径,例如/myapplication
。
是否也可以获取当前的page, like /home.faces
, 如何?
您通常想要使用UIViewRoot#getViewId() http://docs.oracle.com/javaee/6/api/javax/faces/component/UIViewRoot.html#getViewId%28%29为了这。
String viewId = facesContext.getViewRoot().getViewId();
这在 EL 中也可用,如下所示:
#{view.viewId}
正是这个值在导航案例结果中是可重用的,例如<h:link outcome>
and <h:button outcome>
.
或者,您也可以使用HttpServletRequest#getRequestURI()
获取最终用户在浏览器地址栏中实际看到的任何内容。
String uri = ((HttpServletRequest) externalContext.getRequest()).getRequestURI();
EL 中也提供如下:
#{request.requestURI}
正是这个值可以重用在<h:outputLink value>
或普通<a href>
。请注意,您不能将其用作导航案例结果。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)