public abstract class ResponseStateManager extends Object
ResponseStateManager is the helper class to
StateManager
that knows the specific
rendering technology being used to generate the response. It is a
singleton abstract class, vended by the RenderKit
. This
class knows the mechanics of saving state, whether it be in hidden
fields, session, or some combination of the two.
Modifier and Type | Field and Description |
---|---|
static String |
RENDER_KIT_ID_PARAM
The name of the request parameter used by the default
implementation of
ViewHandler.calculateRenderKitId(javax.faces.context.FacesContext) to
derive a RenderKit ID. |
static String |
VIEW_STATE_PARAM
Implementations must use this value as the name and id of the client
parameter in which to save the state between requests.
|
Constructor and Description |
---|
ResponseStateManager() |
Modifier and Type | Method and Description |
---|---|
Object |
getComponentStateToRestore(FacesContext context)
Deprecated.
This method has been replaced by
getState(javax.faces.context.FacesContext, java.lang.String) .
The default implementation returns null . |
Object |
getState(FacesContext context,
String viewId)
The implementation must inspect the current request and return
an Object representing the tree structure and component state
passed in to a previous invocation of
writeState(javax.faces.context.FacesContext,java.lang.Object) . |
Object |
getTreeStructureToRestore(FacesContext context,
String viewId)
Deprecated.
This method has been replaced by
getState(javax.faces.context.FacesContext, java.lang.String) .
The default implementation returns null . |
boolean |
isPostback(FacesContext context)
Return true if the current request is a postback.
|
void |
writeState(FacesContext context,
Object state) |
void |
writeState(FacesContext context,
StateManager.SerializedView state)
Deprecated.
This method has been replaced by
writeState(javax.faces.context.FacesContext,java.lang.Object) .
The default implementation of this method does nothing. |
public static final String RENDER_KIT_ID_PARAM
The name of the request parameter used by the default
implementation of ViewHandler.calculateRenderKitId(javax.faces.context.FacesContext)
to
derive a RenderKit ID.
public static final String VIEW_STATE_PARAM
Implementations must use this value as the name and id of the client parameter in which to save the state between requests.
public void writeState(FacesContext context, Object state) throws IOException
IOException
public void writeState(FacesContext context, StateManager.SerializedView state) throws IOException
writeState(javax.faces.context.FacesContext,java.lang.Object)
.
The default implementation of this method does nothing.Take the argument state
and write it into
the output using the current ResponseWriter
, which
must be correctly positioned already.
If the StateManager.SerializedView
is to be
written out to hidden fields, the implementation must take care
to make all necessary character replacements to make the Strings
suitable for inclusion as an HTTP request paramater.
If the state saving method for this application is StateManager.STATE_SAVING_METHOD_CLIENT
,
the implementation may encrypt the state to be saved to the
client. We recommend that the state be unreadable by the client,
and also be tamper evident. The reference implementation follows
these recommendations.
context
- The FacesContext
instance for the current requeststate
- The serialized state information previously savedIOException
public Object getState(FacesContext context, String viewId)
The implementation must inspect the current request and return
an Object representing the tree structure and component state
passed in to a previous invocation of writeState(javax.faces.context.FacesContext,java.lang.Object)
.
For backwards compatability with existing
ResponseStateManager
implementations, the default
implementation of this method calls getTreeStructureToRestore(javax.faces.context.FacesContext, java.lang.String)
and getComponentStateToRestore(javax.faces.context.FacesContext)
and creates and returns a two
element Object
array with element zero containing
the structure
property and element one containing
the state
property of the
SerializedView
.
context
- The FacesContext
instance for the current requestviewId
- View identifier of the view to be restoredwriteState
. If this is an initial request, this
method returns null
.public Object getTreeStructureToRestore(FacesContext context, String viewId)
getState(javax.faces.context.FacesContext, java.lang.String)
.
The default implementation returns null
.The implementation must inspect the current request and return
the tree structure Object passed to it on a previous invocation of
writeState()
.
context
- The FacesContext
instance for the current requestviewId
- View identifier of the view to be restoredpublic Object getComponentStateToRestore(FacesContext context)
getState(javax.faces.context.FacesContext, java.lang.String)
.
The default implementation returns null
.The implementation must inspect the current request and return
the component state Object passed to it on a previous invocation
of writeState()
.
context
- The FacesContext
instance for the current requestpublic boolean isPostback(FacesContext context)
Return true if the current request is a postback. This method
is leveraged from the Restore View Phase to determine if
ViewHandler.restoreView(javax.faces.context.FacesContext, java.lang.String)
or ViewHandler.createView(javax.faces.context.FacesContext, java.lang.String)
should be called.
The default implementation must return true
if this
ResponseStateManager
instance wrote out state on a
previous request to which this request is a postback,
false
otherwise.
The implementation if this method for the Standard HTML
RenderKit must consult the ExternalContext
's
requestParameterMap
and return true
if
and only if there is a key equal to the value of the symbolic
constant VIEW_STATE_PARAM
.
For backwards compatability with implementations of
ResponseStateManager
prior to JSF 1.2, a default
implementation is provided that consults the ExternalContext
's requestParameterMap
and return
true
if its size is greater than 0.
Copyright © 2018 JBoss by Red Hat. All rights reserved.