The Spring Framework

org.springframework.web.struts
Class AutowiringTilesRequestProcessor

java.lang.Object
  extended by org.apache.struts.action.RequestProcessor
      extended by org.apache.struts.tiles.TilesRequestProcessor
          extended by org.springframework.web.struts.AutowiringTilesRequestProcessor

public class AutowiringTilesRequestProcessor
extends TilesRequestProcessor

Subclass of Struts's TilesRequestProcessor that autowires Struts Actions with Spring beans defined in ContextLoaderPlugIn's WebApplicationContext or - in case of general service layer beans - in the root WebApplicationContext.

Behaves like AutowiringRequestProcessor, but also provides the Tiles functionality of the original TilesRequestProcessor. As there's just a single central class to customize in Struts, we have to provide another subclass here, covering both the Tiles and the Spring delegation aspect.

The default implementation delegates to the DelegatingActionUtils class as fas as possible, to reuse as much code as possible despite the need to provide two RequestProcessor subclasses. If you need to subclass yet another RequestProcessor, take this class as a template, delegating to DelegatingActionUtils just like it.

Since:
2.0
Author:
Juergen Hoeller
See Also:
AutowiringRequestProcessor, ContextLoaderPlugIn, DelegatingActionUtils

Field Summary
 
Fields inherited from class org.apache.struts.tiles.TilesRequestProcessor
definitionsFactory, log
 
Fields inherited from class org.apache.struts.action.RequestProcessor
actions, INCLUDE_PATH_INFO, INCLUDE_SERVLET_PATH, moduleConfig, servlet
 
Constructor Summary
AutowiringTilesRequestProcessor()
           
 
Method Summary
protected  int getAutowireMode()
          Return the autowire mode to use for wiring Struts Actions.
protected  boolean getDependencyCheck()
          Return whether to apply a dependency check after wiring Struts Actions.
protected  WebApplicationContext getWebApplicationContext()
          Return the current Spring WebApplicationContext.
 void init(ActionServlet actionServlet, ModuleConfig moduleConfig)
           
protected  int initAutowireMode(ActionServlet actionServlet, ModuleConfig moduleConfig)
          Determine the autowire mode to use for wiring Struts Actions.
protected  boolean initDependencyCheck(ActionServlet actionServlet, ModuleConfig moduleConfig)
          Determine whether to apply a dependency check after wiring Struts Actions.
protected  WebApplicationContext initWebApplicationContext(ActionServlet actionServlet, ModuleConfig moduleConfig)
          Fetch ContextLoaderPlugIn's WebApplicationContext from the ServletContext, falling back to the root WebApplicationContext.
protected  Action processActionCreate(HttpServletRequest request, HttpServletResponse response, ActionMapping mapping)
          Extend the base class method to autowire each created Action instance.
 
Methods inherited from class org.apache.struts.tiles.TilesRequestProcessor
doForward, getDefinitionsFactory, initDefinitionsMapping, internalModuleRelativeForward, internalModuleRelativeInclude, processForwardConfig, processTilesDefinition
 
Methods inherited from class org.apache.struts.action.RequestProcessor
destroy, doInclude, getInternal, getServletContext, log, log, process, processActionForm, processActionPerform, processCachedMessages, processContent, processException, processForward, processInclude, processLocale, processMapping, processMultipart, processNoCache, processPath, processPopulate, processPreprocess, processRoles, processValidate
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AutowiringTilesRequestProcessor

public AutowiringTilesRequestProcessor()
Method Detail

init

public void init(ActionServlet actionServlet,
                 ModuleConfig moduleConfig)
          throws ServletException
Overrides:
init in class TilesRequestProcessor
Throws:
ServletException

initWebApplicationContext

protected WebApplicationContext initWebApplicationContext(ActionServlet actionServlet,
                                                          ModuleConfig moduleConfig)
                                                   throws IllegalStateException
Fetch ContextLoaderPlugIn's WebApplicationContext from the ServletContext, falling back to the root WebApplicationContext. This context is supposed to contain the service layer beans to wire the Struts Actions with.

Parameters:
actionServlet - the associated ActionServlet
moduleConfig - the associated ModuleConfig
Returns:
the WebApplicationContext
Throws:
IllegalStateException - if no WebApplicationContext could be found
See Also:
DelegatingActionUtils.findRequiredWebApplicationContext(org.apache.struts.action.ActionServlet, org.apache.struts.config.ModuleConfig), ContextLoaderPlugIn.SERVLET_CONTEXT_PREFIX

initAutowireMode

protected int initAutowireMode(ActionServlet actionServlet,
                               ModuleConfig moduleConfig)
Determine the autowire mode to use for wiring Struts Actions.

The default implementation checks the "autowire" init-param of the Struts ActionServlet, falling back to "AUTOWIRE_BY_TYPE" as default.

Parameters:
actionServlet - the associated ActionServlet
moduleConfig - the associated ModuleConfig
Returns:
the autowire mode to use
See Also:
DelegatingActionUtils.getAutowireMode(org.apache.struts.action.ActionServlet), AutowireCapableBeanFactory.autowireBeanProperties(java.lang.Object, int, boolean), AutowireCapableBeanFactory.AUTOWIRE_BY_TYPE, AutowireCapableBeanFactory.AUTOWIRE_BY_NAME

initDependencyCheck

protected boolean initDependencyCheck(ActionServlet actionServlet,
                                      ModuleConfig moduleConfig)
Determine whether to apply a dependency check after wiring Struts Actions.

The default implementation checks the "dependencyCheck" init-param of the Struts ActionServlet, falling back to no dependency check as default.

Parameters:
actionServlet - the associated ActionServlet
moduleConfig - the associated ModuleConfig
Returns:
whether to enforce a dependency check or not
See Also:
DelegatingActionUtils.getDependencyCheck(org.apache.struts.action.ActionServlet), AutowireCapableBeanFactory.autowireBeanProperties(java.lang.Object, int, boolean)

getWebApplicationContext

protected final WebApplicationContext getWebApplicationContext()
Return the current Spring WebApplicationContext.


getAutowireMode

protected final int getAutowireMode()
Return the autowire mode to use for wiring Struts Actions.


getDependencyCheck

protected final boolean getDependencyCheck()
Return whether to apply a dependency check after wiring Struts Actions.


processActionCreate

protected Action processActionCreate(HttpServletRequest request,
                                     HttpServletResponse response,
                                     ActionMapping mapping)
                              throws IOException
Extend the base class method to autowire each created Action instance.

Overrides:
processActionCreate in class RequestProcessor
Throws:
IOException
See Also:
AutowireCapableBeanFactory.autowireBeanProperties(java.lang.Object, int, boolean)

The Spring Framework

Copyright © 2002-2008 The Spring Framework.