Spring Web Flow

org.springframework.faces.webflow
Class MyFacesFlowResponseStateManager

java.lang.Object
  extended by javax.faces.render.ResponseStateManager
      extended by org.apache.myfaces.renderkit.MyfacesResponseStateManager
          extended by org.springframework.faces.webflow.MyFacesFlowResponseStateManager
All Implemented Interfaces:
javax.faces.FacesWrapper<javax.faces.render.ResponseStateManager>

public class MyFacesFlowResponseStateManager
extends org.apache.myfaces.renderkit.MyfacesResponseStateManager
implements javax.faces.FacesWrapper<javax.faces.render.ResponseStateManager>

A wrapper for FlowResponseStateManager used to support MyFaces partial state saving. MyFaces supports an extension to the ResponseStateManager that reduces the amount of buffering required when writing a response. Empty state is provided at the time that the writeState method is invoked with an additional saveState method called later containing the real state to save.

Since JSF 2.0, the strategy used by MyFaces to determine if a MyfacesResponseStateManager is available will always succeed since it follows FacesWrappers to find the root HtmlResponseStateManager implementation. Since state management for web flow requests is handled by the FlowResponseStateManager this assumption causes problems and results in empty state data being saved. This wrapper provides the additional hook required to ensure that the saveState method also triggers web flow state management.

Since:
2.4
Author:
Phillip Webb
See Also:
FlowResponseStateManager, FlowRenderKit

Field Summary
 
Fields inherited from class javax.faces.render.ResponseStateManager
RENDER_KIT_ID_PARAM, VIEW_STATE_PARAM
 
Constructor Summary
MyFacesFlowResponseStateManager(FlowResponseStateManager wrapped)
           
 
Method Summary
 java.lang.Object getComponentStateToRestore(javax.faces.context.FacesContext context)
           
 java.lang.Object getState(javax.faces.context.FacesContext context, java.lang.String viewId)
           
 java.lang.Object getTreeStructureToRestore(javax.faces.context.FacesContext context, java.lang.String viewId)
           
 java.lang.String getViewState(javax.faces.context.FacesContext context, java.lang.Object state)
           
 javax.faces.render.ResponseStateManager getWrapped()
           
 boolean isPostback(javax.faces.context.FacesContext context)
           
 boolean isWriteStateAfterRenderViewRequired(javax.faces.context.FacesContext facesContext)
           
 void saveState(javax.faces.context.FacesContext facesContext, java.lang.Object state)
           
 void writeState(javax.faces.context.FacesContext context, java.lang.Object state)
           
 void writeState(javax.faces.context.FacesContext context, javax.faces.application.StateManager.SerializedView state)
          Deprecated. 
 void writeStateAsUrlParams(javax.faces.context.FacesContext facesContext, javax.faces.application.StateManager.SerializedView serializedview)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MyFacesFlowResponseStateManager

public MyFacesFlowResponseStateManager(FlowResponseStateManager wrapped)
Method Detail

getWrapped

public javax.faces.render.ResponseStateManager getWrapped()
Specified by:
getWrapped in interface javax.faces.FacesWrapper<javax.faces.render.ResponseStateManager>

isWriteStateAfterRenderViewRequired

public boolean isWriteStateAfterRenderViewRequired(javax.faces.context.FacesContext facesContext)
Overrides:
isWriteStateAfterRenderViewRequired in class org.apache.myfaces.renderkit.MyfacesResponseStateManager

saveState

public void saveState(javax.faces.context.FacesContext facesContext,
                      java.lang.Object state)
Overrides:
saveState in class org.apache.myfaces.renderkit.MyfacesResponseStateManager

writeStateAsUrlParams

public void writeStateAsUrlParams(javax.faces.context.FacesContext facesContext,
                                  javax.faces.application.StateManager.SerializedView serializedview)
Overrides:
writeStateAsUrlParams in class org.apache.myfaces.renderkit.MyfacesResponseStateManager

getComponentStateToRestore

public java.lang.Object getComponentStateToRestore(javax.faces.context.FacesContext context)
Overrides:
getComponentStateToRestore in class javax.faces.render.ResponseStateManager

getState

public java.lang.Object getState(javax.faces.context.FacesContext context,
                                 java.lang.String viewId)
Overrides:
getState in class javax.faces.render.ResponseStateManager

getTreeStructureToRestore

public java.lang.Object getTreeStructureToRestore(javax.faces.context.FacesContext context,
                                                  java.lang.String viewId)
Overrides:
getTreeStructureToRestore in class javax.faces.render.ResponseStateManager

getViewState

public java.lang.String getViewState(javax.faces.context.FacesContext context,
                                     java.lang.Object state)
Overrides:
getViewState in class javax.faces.render.ResponseStateManager

isPostback

public boolean isPostback(javax.faces.context.FacesContext context)
Overrides:
isPostback in class javax.faces.render.ResponseStateManager

writeState

public void writeState(javax.faces.context.FacesContext context,
                       java.lang.Object state)
                throws java.io.IOException
Overrides:
writeState in class javax.faces.render.ResponseStateManager
Throws:
java.io.IOException

writeState

@Deprecated
public void writeState(javax.faces.context.FacesContext context,
                                  javax.faces.application.StateManager.SerializedView state)
                throws java.io.IOException
Deprecated. 

Overrides:
writeState in class javax.faces.render.ResponseStateManager
Throws:
java.io.IOException

Spring Web Flow