miercuri, 17 iunie 2015

[OmniFaces utilities 2.0] Get the HTTP request URI with query string


[OmniFaces utilities] The getRequestURIWithQueryString() method returns the HTTP request URI with query string. This is the part after the domain in the request URL, including the leading slash and the request query string.

Method:
OmniFaces 2.4 (uses Servlets.getRequestURI() and Servlets.getRequestQueryString())OmniFaces 2.0

Usage:

·         inside a servlet filter or even a plain vanilla servlet (basically, when FacesContext is not available):

import org.omnifaces.util.Servlets;
...
@WebServlet("/MyServlet")
public class MyServlet extends HttpServlet {
 protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  // e.g. /MyApp/MyServlet?tech=JSF&lib=OmniFaces
  String requestURI = Servlets.getRequestURIWithQueryString(request);
 }
 ...
}

·         in JSF, when FacesContext is available use, Faces#getRequestURIWithQueryString(), or more clumsy (not recommended): 

import org.omnifaces.util.Servlets;
...
// or simply use, Faces#getRequest()
Faces Context context = FacesContext.getCurrentInstance();
ExternalContext externalContext = context.getExternalContext();
HttpServletRequest request = (HttpServletRequest) externalContext.getRequest();

// e.g. /MyApp/faces/index.xhtml?tech=JSF&lib=OmniFaces
// Note: in order to preserve the query parameters over a JSF POST you may need<o:formincludeRequestParams="true"> 
String requestURI = Servlets.getRequestURIWithQueryString(request);

Niciun comentariu:

Trimiteți un comentariu