Class ServerSideStateHelper

java.lang.Object
com.sun.faces.renderkit.StateHelper
com.sun.faces.renderkit.ServerSideStateHelper

public class ServerSideStateHelper extends StateHelper
This StateHelper provides the functionality associated with server-side state saving, though in actuality, it is a hybrid between client and server.
  • Field Details

    • STATEMANAGED_SERIAL_ID_KEY

      public static final String STATEMANAGED_SERIAL_ID_KEY
      Key to store the AtomicInteger used to generate unique state map keys.
    • LOGICAL_VIEW_MAP

      public static final String LOGICAL_VIEW_MAP
      The top level attribute name for storing the state structures within the session.
    • numberOfLogicalViews

      protected final Integer numberOfLogicalViews
      The number of logical views as configured by the user.
    • numberOfViews

      protected final Integer numberOfViews
      The number of views as configured by the user.
    • generateUniqueStateIds

      protected boolean generateUniqueStateIds
      Flag determining how server state IDs are generated.
    • random

      protected final SecureRandom random
      Used to generate unique server state IDs.
  • Constructor Details

    • ServerSideStateHelper

      public ServerSideStateHelper()
      Construct a new ServerSideStateHelper instance.
  • Method Details

    • writeState

      public void writeState(FacesContext ctx, Object state, StringBuilder stateCapture) throws IOException

      Stores the provided state within the session obtained from the provided FacesContext

      If stateCapture is null, the composite key used to look up the actual and logical views will be written to the client as a hidden field using the ResponseWriter from the provided FacesContext.

      If stateCapture is not null, the composite key will be appended to the StringBuilder without any markup included or any content written to the client.

      Specified by:
      writeState in class StateHelper
      Throws:
      IOException
      See Also:
    • getState

      public Object getState(FacesContext ctx, String viewId)

      Inspects the incoming request parameters for the standardized state parameter name. In this case, the parameter value will be the composite ID generated by ServerSideStateHelper#writeState(FacesContext, Object, StringBuilder).

      The composite key will be used to find the appropriate view within the session obtained from the provided FacesContext

      Specified by:
      getState in class StateHelper
      See Also:
    • getIntegerConfigValue

      protected Integer getIntegerConfigValue(WebConfiguration.WebContextInitParameter param)

      Utility method for obtaining the Integer based configuration values used to change the behavior of the ServerSideStateHelper.

      Parameters:
      param - the paramter to parse
      Returns:
      the Integer representation of the parameter value
    • handleSaveState

      protected Object handleSaveState(Object state)
      Parameters:
      state - the object returned from UIView.processSaveState
      Returns:
      If option SerializeServerState is true, serialize and return the state, otherwise, return state unchanged.
    • handleRestoreState

      protected Object handleRestoreState(Object state)
      Parameters:
      state - the state as it was stored in the session
      Returns:
      an object that can be passed to UIViewRoot.processRestoreState. If option SerializeServerState true de-serialize the state prior to returning it, otherwise return state as is.
    • isStateless

      public boolean isStateless(FacesContext facesContext, String viewId) throws IllegalStateException
      Is stateless.
      Specified by:
      isStateless in class StateHelper
      Parameters:
      facesContext - the Faces context.
      viewId - the view id.
      Returns:
      true if stateless, false otherwise.
      Throws:
      IllegalStateException - when the request was not a postback.
      See Also: