Seguinte, como o JSF usa post pra tudo, ele considera que seu request é tudo post, entao com #{requestScope.nomeDoParametro} eu nao consegui pegar nada da url. Mas pra isso tem o param. Esse param pega as coisas da url, entao nesse caso basta voce fazer #{param.nomeDoParametro}.
Agora caso voce queira fazer programaticamente, em vez de fazer cast pra HttpServletRequest, usa um outro método do ExternalContext.
String valor = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap() .get("nomeDoParametro");
Como no caso entre #{requestScope} e #{param} o JSF guarda em locais diferentes o request do POST e o request da url (GET).
E pra voce nao precisar fazer cast pra HttpServletRequest quando quiser pegar programaticamente algo do request via post, faz assim
Object valor = FacesContext.getCurrentInstance().getExternalContext().getRequestMap() .get("nomeDoParametro");
A diferencá é que via get só vem String, e via post vem Object.