tags:

views:

254

answers:

1

I've read in jsf docs that ResponseStateManager has a isPostBack method. How (and where) can I have an instance of ResponseStateManager?

+3  A: 

Indeed, before jsf1.2, isPostBack was obtained through the requestScope of the current instance of FaceContext.

Since JSF1.2, The ResponseStateManager (helper class to StateManager that knows the specific rendering technology being used to generate the response, a singleton abstract class, vended by the RenderKit.)

During the restore view phase of the life cycle, ViewHandler retrieves the ResponseStateManager object in order to test if the request is a postback or an initial request.

If a request is a postback, therestoreView method of ViewHandler is called. This method uses theResponseStateManager object to re-build the component tree and restore state. After the tree is built and state is restored, theViewHandler instance is not needed until the render response phase occurs again.

That article mentionned above (Creating and Using a Custom Render Kit) illustrates how to implement/get an ResponseStateManager, through a RenderKit (defined by the tag handler implementing the tag that renders the component).
May be this is enough for you to get your own ResponseStateManager in your context ?

VonC
thank you for your completeness (i voted you). I needed a more practical hint, that is where I can get an instance of the ResponseStateManager that my implementation is using: I later found that simply I can access RenderKit from FacesContext and use getResponseStateManager()
Pier Luigi