The problem is that request objects exists only for the life of that particular request. It's especially a problem when working with tables, since the table model (and its cursor) is used to display the table, but no longer exists when you want to work with a row in the table.
The solution is to use session scope. As a rule, JSF does require more items to be in session scope than other J2EE frameworks.
Customer surveys are for companies who didn't pay proper attention to begin with.