org.apache.myfaces.orchestra.viewController
Interface ViewController


public interface ViewController

An interface for use with the InterfaceViewControllerExecutor.

When the InterfaceViewControllerExecutor has been selected as the technique for mapping lifecycle events onto bean methods, then the target bean must implement this interface in order to get callbacks.

Note that the expression "view controller bean" is used to generally refer to an object that can handle lifecycle events for a view. Such beans may implement this interface, but may not - they might be accessed via the ReflectiveViewControllerExecutor or other implementations that do not require this interface.


Method Summary
 void initView()
          This method will always be called before any other method is invoked on any backing bean for the current request.
 void preProcess()
          This method will be invoked before any "action" callbacks related to buttons, links, etc.
 void preRenderView()
          This method will be invoked just before starting to render output to the user.
 

Method Detail

initView

void initView()
This method will always be called before any other method is invoked on any backing bean for the current request. It is invoked once for each request.

This callback could possibly be better named "notifyBeginRequestUsingThisView" or similar, as it is invoked per request.

There are three different situations in which initView callbacks occur:

  1. A view is just being rendered.
    The initView callback gets called once (at BeforeRender)
  2. A postback is processed, no navigation occurs.
    The initView callback gets called once (at AfterRestoreView)
  3. A postback occurs, navigation to a different view instance occurs.
    The initView callback gets called once for the original view, and then once for the new view.

Note that the condition tested is whether the view instance has changed; if navigation causes a new view root to be created then the initView callback occurs even if that view root has the same viewId [1].

Note [1]: Orchestra versions 1.3 and earlier test only the viewId string.


preProcess

void preProcess()
This method will be invoked before any "action" callbacks related to buttons, links, etc. are invoked on backing beans for the current request.

For JSF, there is an exception: for command components marked as "immediate", the associated action method is invoked before this callback occurs. If that method then performs navigation then this callback will not occur at all.

Note also that for JSF, if validation failures occur then this callback will not be invoked (as actions are skipped).


preRenderView

void preRenderView()
This method will be invoked just before starting to render output to the user.



Copyright © 2009 The Apache Software Foundation. All Rights Reserved.