Below is how I retrieve the Request Parameter Map in JSF
FacesContext context = FacesContext.getCurrentInstance();
Map<String, String> requestMap = context.getExternalContext().getRequestParameterMap();
However requestMap is immutable so I can’t edit it. Is there a way to add more parameters to Request Parameter Map? Is it possible at all?
You would generally only do this if there was some code over which you had no control that needed such parameters. If you need to pass around request-scoped variables you should use the request map.
Java EE developers generally provide additional parameters via filters. In a servlet environment, a Filter can be used to provide parameters via a wrapper. Portlet 2.0 containers provide a similar filter API.
I you want to provide custom parameter maps in a container-agnostic manner, this can be done by via a custom ExternalContext. Configure a custom FacesContextFactory to override the default behaviour.
See the relevant specifications for details:
Being more specific about why and where you want to do this in a new question might provide more useful answers.