In a JSF backing bean (Managed Bean, Weld Bean, doesn't matter), I can get the context path the client is on by calling
FacesContext ctx = FacesContext.getCurrentInstance();
String path = ctx.getExternalContext().getRequestContextPath();
You normally want to use
UIViewRoot#getViewId() for this.
String viewId = facesContext.getViewRoot().getViewId();
This is in EL also available as follows:
Exactly this value is reuseable in navigation case outcomes such as
<h:link outcome> and
Alternatively, you can also use
HttpServletRequest#getRequestURI() to get whatever the enduser is actually seeing in the browser address bar.
String uri = ((HttpServletRequest) externalContext.getRequest()).getRequestURI();
Which is in EL also available as follows:
Exactly this value is reuseable in
<h:outputLink value> or plain
<a href>. Note that you can't use it as navigation case outcome.