Looking up request params from the bean

Use PrettyFaces (by OcpSoft)

For bookmarking, dynamic parameters, seo, and simplified navigation: this simple extension for JSF/JSF2 uses a Servlet Filter to intercept all requests. Request parameters can be injected directly into JSF managed beans via a minimalist configuration, managed bean methods can be invoked on each page request. "PrettyFaces URLRewriteFilter - Page Actions - and Navigation for JSF" is primarily designed to convert JSF urls: "/faces/page.xhtml?id=345" into parameterized, bookmarkable URLs: "/page/345", such as done by wordpress, or other client-facing web-applications.

Use Apache Shale

The Apache Shale framework for JSF has a ViewController class that provides a straightforward mechanism for dealing with GET requests as well as POST requests. On a GET, the prerender() method is called once JSF notices that there is no view state to be restored. This is a convenient place to access the request parameters, using one of the techniques above. (If you use the convenience base class AbstractViewController, there is also a convenience getRequestParameter() method available.) http://shale.apache.org/

Using a custom servlet

A custom servlet can be used to receive the request, initialise any variables needed, then forward to the JSF page.

However, JSF requires that accesses pass through its own servlet in order to set up the JSF framework to handle the current request. Standard Servlet behaviour for forwards, however, does not run any servlets mapped to the forwarded-to URL. Your custom servlet therefore needs to duplicate the setup behaviour of the standard JSF class javax.faces.webapp.FacesServlet.

Making a fake postback

Users of facelets have another method available to them as described in the blog Faking a Postback with JSF + Facelets. This method uses an extended FaceletViewHandler which allows you to craft URLs such that they are indistinguishable from regular form submissions. Feedback on how this ViewHandler works with MyFaces is welcome via the blog comments.