The Spring Framework

## org.springframework.web.struts
Class DelegatingTilesRequestProcessor

    java.lang.Object
      org.apache.struts.action.RequestProcessor
          org.apache.struts.tiles.TilesRequestProcessor
              org.springframework.web.struts.DelegatingTilesRequestProcessor

    public class DelegatingTilesRequestProcessor

extends TilesRequestProcessor

Subclass of Struts's TilesRequestProcessor that autowires Struts Actions defined in ContextLoaderPlugIn's WebApplicationContext (or, as a fallback, in the root WebApplicationContext).

Behaves like `DelegatingRequestProcessor`, 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:
  1.0.2
Author:
  Juergen Hoeller
See Also:
  `DelegatingRequestProcessor`, `DelegatingActionProxy`, `DelegatingActionUtils`, `ContextLoaderPlugIn`

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
`DelegatingTilesRequestProcessor()`

Method Summary
`protected String` `determineActionBeanName(ActionMapping mapping)` Determine the name of the Action bean, to be looked up in the WebApplicationContext.
`protected Action` `getDelegateAction(ActionMapping mapping)` Return the delegate Action for the given mapping.
`protected WebApplicationContext` `getWebApplicationContext()` Return the WebApplicationContext that this processor delegates to.
`void` `init(ActionServlet actionServlet, ModuleConfig moduleConfig)`
`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)` Override the base class method to return the delegate action.

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

### DelegatingTilesRequestProcessor

    public DelegatingTilesRequestProcessor()

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 Struts Action beans to delegate to.

  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`

### getWebApplicationContext

    protected final WebApplicationContext getWebApplicationContext()

  Return the WebApplicationContext that this processor delegates to.

### processActionCreate

    protected Action processActionCreate(HttpServletRequest request,
                                         HttpServletResponse response,
                                         ActionMapping mapping)
                                  throws IOException

  Override the base class method to return the delegate action.

  Overrides:
    `processActionCreate` in class `RequestProcessor`
  Throws:
    `IOException`
  See Also:
    `getDelegateAction(org.apache.struts.action.ActionMapping)`

### getDelegateAction

    protected Action getDelegateAction(ActionMapping mapping)
                                throws BeansException

  Return the delegate Action for the given mapping.

  The default implementation determines a bean name from the given ActionMapping and looks up the corresponding bean in the WebApplicationContext.

  Parameters:
    `mapping` - the Struts ActionMapping
  Returns:
    the delegate Action, or `null` if none found
  Throws:
    `BeansException` - if thrown by WebApplicationContext methods
  See Also:
    `determineActionBeanName(org.apache.struts.action.ActionMapping)`

### determineActionBeanName

    protected String determineActionBeanName(ActionMapping mapping)

  Determine the name of the Action bean, to be looked up in the WebApplicationContext.

  The default implementation takes the mapping path and prepends the module prefix, if any.

  Parameters:
    `mapping` - the Struts ActionMapping
  Returns:
    the name of the Action bean
  See Also:
    `DelegatingActionUtils.determineActionBeanName(org.apache.struts.action.ActionMapping)`, `ActionConfig.getPath()`, `ModuleConfig.getPrefix()`

The Spring Framework

Copyright © 2002-2008 The Spring Framework.