Is it possible to keep a request scoped bean alive across postbacks on the same page?
The general problem is, as the bean gets trashed on end of request and recreated on every form submit, for example the booleans behind dynamically manipulated disabled
, readonly
and rendered
get reset to their default values and cause the forms to not work as intented anymore.
Not really, unless you store the Bean somewhere e.g. a Map in application scope, to retrieve it later.
Why not just make it Session scoped? This is what Session scope is there for, so multiple Requests during the same Session can hit the same state.
I'll assume that the session scope is not an option, otherwise this question makes little sense.
You can do it using Tomahawk
<t:saveState>
. Add the following line somewhere to the page:RichFaces
<a4j:keepAlive>
does also the same:Or if there is room, upgrade to at least JSF 2.x and put the bean in view scope:
Regardless of the way, the same bean will be there when you postback to the same view and keep returning
null
orvoid
from action methods.See also: