Save This Page
Home » struts-2.0.11.2-src » org.apache » struts2 » interceptor » [javadoc | source]
org.apache.struts2.interceptor
public class: MessageStoreInterceptor [javadoc | source]
java.lang.Object
   org.apache.struts2.interceptor.MessageStoreInterceptor

All Implemented Interfaces:
    com.opensymphony.xwork2.interceptor.Interceptor

An interceptor to store ValidationAware action's messages / errors and field errors into Http Session, such that it will be retrieveable at a later stage. This allows the action's message / errors and field errors to be available longer that just the particular http request.

In the 'STORE' mode, the interceptor will store the ValidationAware action's message / errors and field errors into Http session.

In the 'RETRIEVE' mode, the interceptor will retrieve the stored action's message / errors and field errors and put them back into the ValidationAware action.

The interceptor does nothing in the 'NONE' mode, which is the default.

The operation mode could be switched using :-

1] Setting the iterceptor parameter eg.

<action name="submitApplication" ...>
<interceptor-ref name="store">
<param name="operationMode">l;STORE</param>
</interceptor-ref>
<interceptor-ref name="defaultStack" />
....
</action>
2] Through request parameter (allowRequestParameterSwitch must be 'true' which is the default)
// the request will have the operation mode in 'STORE'
http://localhost:8080/context/submitApplication.action?operationMode=STORE

The following method could be overriden :-



<action name="submitApplication" ....>
<interceptor-ref name="store">
<param name="operationMode">STORE</param>
</interceptor-ref>
<interceptor-ref name="defaultStack" />
<result name="input" type="redirect">applicationFailed.action</result>
<result type="dispatcher">applicationSuccess.jsp</result>
</action>

<action name="applicationFailed" ....>
<interceptor-ref name="store">
<param name="operationMode">RETRIEVE</param>
</interceptor-ref>
<result>applicationFailed.jsp</result>
</action>


With the example above, 'submitApplication.action' will have the action messages / errors / field errors stored in the Http Session. Later when needed, (in this case, when 'applicationFailed.action' is fired, it will get the action messages / errors / field errors stored in the Http Session and put them back into the action.
Field Summary
public static final  String STORE_MODE     
public static final  String RETRIEVE_MODE     
public static final  String NONE     
public static  String fieldErrorsSessionKey     
public static  String actionErrorsSessionKey     
public static  String actionMessagesSessionKey     
Method from org.apache.struts2.interceptor.MessageStoreInterceptor Summary:
after,   before,   destroy,   getAllowRequestParameterSwitch,   getOperationModel,   getRequestOperationMode,   getRequestParameterSwitch,   init,   intercept,   mergeCollection,   mergeMap,   setAllowRequestParameterSwitch,   setOperationMode,   setRequestParameterSwitch
Methods from java.lang.Object:
equals,   getClass,   hashCode,   notify,   notifyAll,   toString,   wait,   wait,   wait
Method from org.apache.struts2.interceptor.MessageStoreInterceptor Detail:
 protected  void after(ActionInvocation invocation,
    String result) throws Exception 
    Handle the storing of field errors / action messages / field errors, which is done after action invocation, and the operationMode is in 'STORE'.
 protected  void before(ActionInvocation invocation) throws Exception 
    Handle the retrieving of field errors / action messages / field errors, which is done before action invocation, and the operationMode is 'RETRIEVE'.
 public  void destroy() 
 public boolean getAllowRequestParameterSwitch() 
 public String getOperationModel() 
 protected String getRequestOperationMode(ActionInvocation invocation) 
    Get the operationMode through request paramter, if allowRequestParameterSwitch is 'true', else it simply returns 'NONE', meaning its neither in the 'STORE_MODE' nor 'RETRIEVE_MODE'.
 public String getRequestParameterSwitch() 
 public  void init() 
 public String intercept(ActionInvocation invocation) throws Exception 
 protected Collection mergeCollection(Collection col1,
    Collection col2) 
    Merge col1 and col2 and return the composite Collection.
 protected Map mergeMap(Map map1,
    Map map2) 
    Merge map1 and map2 and return the composite Map
 public  void setAllowRequestParameterSwitch(boolean allowRequestParameterSwitch) 
 public  void setOperationMode(String operationMode) 
 public  void setRequestParameterSwitch(String requestParameterSwitch)