[英]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.