org.apache.struts2.interceptor
Class MessageStoreInterceptor
java.lang.Object
com.opensymphony.xwork2.interceptor.AbstractInterceptor
org.apache.struts2.interceptor.MessageStoreInterceptor
- All Implemented Interfaces:
- Interceptor, Serializable
public class MessageStoreInterceptor
- extends AbstractInterceptor
An interceptor to store a ValidationAware
action's messages / errors and field errors into
HTTP Session, such that it will be retrievable at a later stage. This allows the action's message /
errors and field errors to be available longer that just the particular HTTP request.
If no session exists, nothing will be stored and can be retrieved later. In other terms,
the application is responsible to open the session.
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.
In the 'AUTOMATIC' mode, the interceptor will always retrieve the stored action's message / errors
and field errors and put them back into the ValidationAware
action, and after Action execution,
if the Result
is an instance of ServletRedirectResult
, the action's message / errors
and field errors into automatically be stored in the HTTP session..
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">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
- allowRequestParameterSwitch - To enable request parameter that could switch the operation mode
of this interceptor.
- requestParameterSwitch - The request parameter that will indicate what mode this
interceptor is in.
- operationMode - The operation mode this interceptor should be in
(either 'STORE', 'RETRIEVE', 'AUTOMATIC', or 'NONE'). 'NONE' being the default.
The following method could be overriden :-
- getRequestOperationMode - get the operation mode of this interceptor based on the request parameters
- mergeCollection - merge two collections
- mergeMap - merge two map
<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.
- Version:
- $Date$ $Id$
- See Also:
- Serialized Form
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
AUTOMATIC_MODE
public static final String AUTOMATIC_MODE
- See Also:
- Constant Field Values
STORE_MODE
public static final String STORE_MODE
- See Also:
- Constant Field Values
RETRIEVE_MODE
public static final String RETRIEVE_MODE
- See Also:
- Constant Field Values
NONE
public static final String NONE
- See Also:
- Constant Field Values
fieldErrorsSessionKey
public static final String fieldErrorsSessionKey
- See Also:
- Constant Field Values
actionErrorsSessionKey
public static final String actionErrorsSessionKey
- See Also:
- Constant Field Values
actionMessagesSessionKey
public static final String actionMessagesSessionKey
- See Also:
- Constant Field Values
MessageStoreInterceptor
public MessageStoreInterceptor()
setAllowRequestParameterSwitch
public void setAllowRequestParameterSwitch(boolean allowRequestParameterSwitch)
getAllowRequestParameterSwitch
public boolean getAllowRequestParameterSwitch()
setRequestParameterSwitch
public void setRequestParameterSwitch(String requestParameterSwitch)
getRequestParameterSwitch
public String getRequestParameterSwitch()
setOperationMode
public void setOperationMode(String operationMode)
getOperationModel
public String getOperationModel()
intercept
public String intercept(ActionInvocation invocation)
throws Exception
- Specified by:
intercept
in interface Interceptor
- Specified by:
intercept
in class AbstractInterceptor
- Throws:
Exception
before
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'.
- Parameters:
invocation
-
- Throws:
Exception
getRequestOperationMode
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'.
- Returns:
- String
mergeCollection
protected Collection mergeCollection(Collection col1,
Collection col2)
- Merge
col1
and col2
and return the composite
Collection
.
- Parameters:
col1
- col2
-
- Returns:
- Collection
mergeMap
protected Map mergeMap(Map map1,
Map map2)
- Merge
map1
and map2
and return the composite
Map
- Parameters:
map1
- map2
-
- Returns:
- Map
Copyright © 2000–2018 Apache Software Foundation. All rights reserved.