Class AnnotationWorkflowInterceptor
java.lang.Object
org.apache.struts2.interceptor.AbstractInterceptor
org.apache.struts2.interceptor.annotations.AnnotationWorkflowInterceptor
- All Implemented Interfaces:
- Serializable,- ConditionalInterceptor,- Interceptor,- PreResultListener
Invokes any annotated methods on the action. Specifically, it supports the following annotations:
-  @Before- will be invoked before the action method. If the returned value is not null, it is returned as the action result code
-  @BeforeResult- will be invoked after the action method but before the result execution
-  @After- will be invoked after the action method and result execution
There can be multiple methods marked with the same annotations, but the order of their execution
 is not guaranteed. However, the annotated methods on the superclass chain are guaranteed to be invoked before the
 annotated method in the current class in the case of a Before annotations and after, if the annotations is
 After.
 
  public class BaseAnnotatedAction {
        protected String log = "";
        @Before
        public String baseBefore() {
                log = log + "baseBefore-";
                return null;
        }
  }
  public class AnnotatedAction extends BaseAnnotatedAction {
        @Before
        public String before() {
                log = log + "before";
                return null;
        }
        public String execute() {
                log = log + "-execute";
                return Action.SUCCESS;
        }
        @BeforeResult
        public void beforeResult() throws Exception {
                log = log +"-beforeResult";
        }
        @After
        public void after() {
                log = log + "-after";
        }
  }
 
  
 
 With the interceptor applied and the action executed on AnnotatedAction the log
 instance variable will contain baseBefore-before-execute-beforeResult-after.
Configure a stack in xwork.xml that replaces the PrepareInterceptor with the AnnotationWorkflowInterceptor:
 
 <interceptor-stack name="annotatedStack">
        <interceptor-ref name="staticParams"/>
        <interceptor-ref name="params"/>
        <interceptor-ref name="conversionError"/>
        <interceptor-ref name="annotationWorkflow"/>
 </interceptor-stack>
  
 - Author:
- Zsolt Szasz, zsolt at lorecraft dot com, Rainer Hermanns, Dan Oxlade, dan d0t oxlade at gmail d0t c0m
- See Also:
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionvoidbeforeResult(ActionInvocation invocation, String resultCode) Invokes any @BeforeResult annotated methodsprotected static intcomparePriorities(int val1, int val2) intercept(ActionInvocation invocation) Discovers annotated methods on the action and calls them according to the workflowMethods inherited from class org.apache.struts2.interceptor.AbstractInterceptordestroy, init, setDisabled, shouldIntercept
- 
Constructor Details- 
AnnotationWorkflowInterceptorpublic AnnotationWorkflowInterceptor()
 
- 
- 
Method Details- 
interceptDiscovers annotated methods on the action and calls them according to the workflow- Specified by:
- interceptin interface- Interceptor
- Specified by:
- interceptin 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().
- See Also:
 
- 
comparePrioritiesprotected static int comparePriorities(int val1, int val2) 
- 
beforeResultInvokes any @BeforeResult annotated methods- Specified by:
- beforeResultin interface- PreResultListener
- Parameters:
- invocation- the action invocation
- resultCode- the result code returned by the action (eg.- success).
- See Also:
 
 
-