MyFaces offers an alternative to putting JSF backing bean elements in session scope with its <t:savestate> tag. However, some colleagues and I recently ran into a couple of gotchas while we were trying to debug our usage of this tag:
1) If you use Facelets, and are employing a template, make sure your <t:savestate> declaration is in a place in the template that won’t be replaced by client code.
2) To have <t:savestate> work properly, you must have the form submit. Just jumping to another page via a link will not work. Use <h:commandbutton> or <h:commandlink> instead.