[OmniFaces utilities] The
getRequestQueryStringMap()
method returns the HTTP request query string as parameter values map. Note this method returns only the request URL (GET) parameters, as opposed to HttpServletRequest#getParameterMap()
, which contains both the request URL (GET) parameters and and the request body (POST) parameters.Method (starting with OmniFaces 2.2, this method become mutable):
See also: Utils#isEmpty() | Utils#decodeURL() | Servlets#getRequestQueryString()
· 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. request: http://localhost:8080/MyApp/MyServlet?tech=JSF&lib=OmniFaces&lib=PrimeFaces&type=utility&type=components
// map content: {tech=[JSF], lib=[OmniFaces, PrimeFaces], type=[utility, components]}
Map<String, List<String>> paramMap =
Servlets.getRequestQueryStringMap(request);
}
}
...
}
·
in JSF, when FacesContext is
available use, Faces#getRequestQueryStringMap(), or
more clumsy (not recommended):
...
// or simply
use, Faces#getRequest()
FacesContext context = FacesContext.getCurrentInstance();
ExternalContext
externalContext = context.getExternalContext();
HttpServletRequest
request = (HttpServletRequest) externalContext.getRequest();
// e.g. request: http://localhost:8080/MyApp/faces/index.xhtml?tech=JSF&lib=OmniFaces&lib=PrimeFaces&type=utility&type=components
// map content:
{tech=[JSF], lib=[OmniFaces, PrimeFaces], type=[utility, components]}
// Note: in
order to preserve the query parameters over a JSF POST you may need, <o:formincludeRequestParams="true">
Map<String,
List<String>> paramMap = Servlets.getRequestQueryStringMap(request);
Niciun comentariu :
Trimiteți un comentariu