繁体   English   中英

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

[英]How do I get the script page I am running from the Browser URL

无论如何,JSF中是否有从指向我所在页面的地址栏中获取URL,脚本名的信息? 那会是什么呢?

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

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

它提供了几种获取请求信息的方法 ,例如getRequestURI() 它们中的大多数也可以通过ExternalContext getRequestXXX()方法获得,但请求URI不可用。

在视图中,您可以通过#{request}获得它。 例如

<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" />

有关:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM