You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by Julien Martin <ba...@gmail.com> on 2007/02/23 09:24:07 UTC
Where are the UIViewRoot instances stored??
Hello,
I have a basic question about JSF: I would like to know where the UIViewRoot
instances are stored (for a given app with several UIViewRoots). Is it in
some sort of java.util collection or in a specific class?
Thanks in advance for your replies,
Julien.
Re: Where are the UIViewRoot instances stored??
Posted by Simon Kitching <si...@rhe.co.nz>.
Julien Martin wrote:
> Hello,
> I have a basic question about JSF: I would like to know where the
> UIViewRoot instances are stored (for a given app with several
> UIViewRoots). Is it in some sort of java.util collection or in a
> specific class?
I'm not sure what you mean by an app having "several UIViewRoots".
When a user first visits a particular view (ie a particular page) the
component tree is created (ie a UIViewRoot plus children).
If you have configured MyFaces to use "client-side state saving" then at
the end of every request the current component tree is "serialized"
(using a custom JSF serialization mechanism) and stored as a (very
large) hidden field in the form. When the page is later submitted back
to the server the component tree is recreated from the serialized data.
When the user then moves on to some other view the component tree is
discarded and a new one created for the new view using the appropriate
technology (jsp, facelets, clay, whatever).
If "server-side state saving with serialization" is configured then at
the end of each request the current component tree is serialized and
stored in the http-session.
If "server-side state saving without serialization" is configured then
at the end of the request a reference to the component tree is just
cached in the http-session.
In addition, if server-side state saving is configured then MyFaces
keeps a list of the most recent N component trees in a FIFO queue stored
in the http session; this is managed by class JspStateManagerImpl. This
data supports the use of the back-button. Storing old component trees is
not needed when using client-side state saving (the browser effectively
does this instead).
Regards,
Simon