Just wanted to spread the word: as per Mojarra 2.1.19 / 2.2.0 (both currently only available as snapshot) it's very easy to make the JSF view completely stateless by just setting the transient
attribute of the <f:view>
to true
:
<f:view transient="true"> Your regular content </f:view>
That's all. Really. It works for me. The view state isn't been created and thus the session also won't be created when not created yet. This is very useful for e.g. a JSF based login form on the public/stateless side of a website.
Remember to put the associated managed bean in the request scope instead of view/session scope, otherwise you're simply defeating the meaning of the word "stateless".
A lot of people have been waiting very long for this. See also issue 2731 and this blog of Mojarra developer Manfred Riem.