Package org.apache.struts2.interceptor

# Class ModelDrivenInterceptor

java.lang.Object
org.apache.struts2.interceptor.AbstractInterceptor
org.apache.struts2.interceptor.ModelDrivenInterceptor

All Implemented Interfaces:
  `Serializable`, `ConditionalInterceptor`, `Interceptor`

public class ModelDrivenInterceptor extends AbstractInterceptor
Watches for `ModelDriven` actions and adds the action's model on to the value stack.

Note: The ModelDrivenInterceptor must come before the both `StaticParametersInterceptor` and `ParametersInterceptor` if you want the parameters to be applied to the model.

Note: The ModelDrivenInterceptor will only push the model into the stack when the model is not null, else it will be ignored.

Interceptor parameters:

- refreshModelBeforeResult - set to true if you want the model to be refreshed on the value stack after action execution and before result execution. The setting is useful if you want to change the model instance during the action execution phase, like when loading it from the data layer. This will result in getModel() being called at least twice.

Extending the interceptor:

There are no known extension points to this interceptor.

Example code:

     <action name="someAction" class="com.examples.SomeAction">
         <interceptor-ref name="modelDriven"/>
         <interceptor-ref name="basicStack"/>
         <result name="success">good_result.ftl</result>
     </action>

Version:
  $Date$ $Id$
Author:
  tm_jee
See Also:
  - Serialized Form

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `protected static class`
  `ModelDrivenInterceptor.RefreshModelBeforeResult`
  Refreshes the model instance on the value stack, if it has changed

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected boolean`
  `refreshModelBeforeResult`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ModelDrivenInterceptor()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `String`
  `intercept(ActionInvocation invocation)`
  Override to handle interception
  `void`
  `setRefreshModelBeforeResult(boolean val)`

  ### Methods inherited from class org.apache.struts2.interceptor.AbstractInterceptor

  `destroy, init, setDisabled, shouldIntercept`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### refreshModelBeforeResult

    protected boolean refreshModelBeforeResult

- ## Constructor Details

  - ### ModelDrivenInterceptor

    public ModelDrivenInterceptor()

- ## Method Details

  - ### setRefreshModelBeforeResult

    public void setRefreshModelBeforeResult(boolean val)

  - ### intercept

    public String intercept(ActionInvocation invocation) throws Exception
    Description copied from class: `AbstractInterceptor`
    Override to handle interception
    Specified by:
      `intercept` in interface `Interceptor`
    Specified by:
      `intercept` in class `AbstractInterceptor`
    Parameters:
      `invocation` - the action invocation
    Returns:
      the return code, either returned from `ActionInvocation.invoke()`, or from the interceptor itself.
    Throws:
      `Exception` - any system-level error, as defined in `Action.execute()`.