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();
This gives me the path the client currently accesses, like /myapplication.
Is it also possible to get the current page, like /home.faces, and how?
You normally want to use
UIViewRoot#getViewId()for this.This is in EL also available as follows:
Exactly this value is reuseable in navigation case outcomes such as
<h:link outcome>and<h:button outcome>.Alternatively, you can also use
HttpServletRequest#getRequestURI()to get whatever the enduser is actually seeing in the browser address bar.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.