com.opensymphony.xwork2.spring.interceptor
Class ActionAutowiringInterceptor

java.lang.Object
  extended by com.opensymphony.xwork2.interceptor.AbstractInterceptor
      extended by com.opensymphony.xwork2.spring.interceptor.ActionAutowiringInterceptor
All Implemented Interfaces:
Interceptor, java.io.Serializable, org.springframework.context.ApplicationContextAware

public class ActionAutowiringInterceptor
extends AbstractInterceptor
implements org.springframework.context.ApplicationContextAware

TODO: Give a description of the Interceptor. TODO: Describe the paramters for this Interceptor. TODO: Discuss some possible extension of the Interceptor.

 
 <!-- TODO: Describe how the Interceptor reference will effect execution -->
 <action name="someAction" class="com.examples.SomeAction">
      TODO: fill in the interceptor reference.
     <interceptor-ref name=""/>
     <result name="success">good_result.ftl</result>
 </action>
 
 
Autowires action classes to Spring beans. The strategy for autowiring the beans can be configured by setting the parameter on the interceptor. Actions that need access to the ActionContext can implements the ApplicationContextAware interface. The context will also be placed on the action context under the APPLICATION_CONTEXT attribute.

Author:
Simon Stewart, Eric Hauser
See Also:
Serialized Form

Field Summary
static java.lang.String APPLICATION_CONTEXT
           
 
Constructor Summary
ActionAutowiringInterceptor()
           
 
Method Summary
protected  org.springframework.context.ApplicationContext getApplicationContext()
           
 java.lang.String intercept(ActionInvocation invocation)
          Looks for the ApplicationContext under the attribute that the Spring listener sets in the servlet context.
 void setApplicationContext(org.springframework.context.ApplicationContext applicationContext)
           
 void setAutowireStrategy(java.lang.Integer autowireStrategy)
           
 
Methods inherited from class com.opensymphony.xwork2.interceptor.AbstractInterceptor
destroy, init
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

APPLICATION_CONTEXT

public static final java.lang.String APPLICATION_CONTEXT
See Also:
Constant Field Values
Constructor Detail

ActionAutowiringInterceptor

public ActionAutowiringInterceptor()
Method Detail

setAutowireStrategy

public void setAutowireStrategy(java.lang.Integer autowireStrategy)
Parameters:
autowireStrategy -

intercept

public java.lang.String intercept(ActionInvocation invocation)
                           throws java.lang.Exception
Looks for the ApplicationContext under the attribute that the Spring listener sets in the servlet context. The configuration is done the first time here instead of in init() since the ActionContext is not available during Interceptor initialization.

Autowires the action to Spring beans and places the ApplicationContext on the ActionContext

TODO Should this check to see if the SpringObjectFactory has already been configured instead of instantiating a new one? Or is there a good reason for the interceptor to have it's own factory?

Specified by:
intercept in interface Interceptor
Specified by:
intercept in class AbstractInterceptor
Parameters:
invocation -
Returns:
the return code, either returned from ActionInvocation.invoke(), or from the interceptor itself.
Throws:
java.lang.Exception

setApplicationContext

public void setApplicationContext(org.springframework.context.ApplicationContext applicationContext)
                           throws org.springframework.beans.BeansException
Specified by:
setApplicationContext in interface org.springframework.context.ApplicationContextAware
Parameters:
applicationContext -
Throws:
org.springframework.beans.BeansException

getApplicationContext

protected org.springframework.context.ApplicationContext getApplicationContext()
Returns:
context


Copyright © 2000-2011 Apache Software Foundation. All Rights Reserved.