| 
 | ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.apache.struts.action.RequestProcessor
org.springframework.web.struts.DelegatingRequestProcessor
public class DelegatingRequestProcessor
Subclass of Struts's default RequestProcessor that looks up
 Spring-managed Struts Actions defined in
 ContextLoaderPlugIn's WebApplicationContext
 (or, as a fallback, in the root WebApplicationContext).
 
In the Struts config file, you can either specify the original
 Action class (as when generated by XDoclet), or no
 Action class at all. In any case, Struts will delegate to an
 Action bean in the ContextLoaderPlugIn context.
 
<action path="/login" type="myapp.MyAction"/>or
<action path="/login"/>The name of the
Action bean in the
 WebApplicationContext will be determined from the mapping path
 and module prefix. This can be customized by overriding the
 determineActionBeanName(org.apache.struts.action.ActionMapping) method.
 Example:
A corresponding bean definition in the ContextLoaderPlugin
 context would look as follows; notice that the Action is now
 able to leverage fully Spring's configuration facilities:
 
<bean name="/login" class="myapp.MyAction"> <property name="...">...</property> </bean>Note that you can use a single
ContextLoaderPlugIn for all
 Struts modules. That context can in turn be loaded from multiple XML files,
 for example split according to Struts modules. Alternatively, define one
 ContextLoaderPlugIn per Struts module, specifying appropriate
 "contextConfigLocation" parameters. In both cases, the Spring bean name has
 to include the module prefix.
 If you also need the Tiles setup functionality of the original
 TilesRequestProcessor, use
 DelegatingTilesRequestProcessor. As there is 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.
 
If this RequestProcessor conflicts with the need for a
 different RequestProcessor subclass (other than
 TilesRequestProcessor), consider using
 DelegatingActionProxy as the Struts Action type in
 your struts-config file.
 
The default implementation delegates to the
 DelegatingActionUtils class as much 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.
determineActionBeanName(org.apache.struts.action.ActionMapping), 
DelegatingTilesRequestProcessor, 
DelegatingActionProxy, 
DelegatingActionUtils, 
ContextLoaderPlugIn| Field Summary | 
|---|
| Fields inherited from class org.apache.struts.action.RequestProcessor | 
|---|
| actions, INCLUDE_PATH_INFO, INCLUDE_SERVLET_PATH, log, moduleConfig, servlet | 
| Constructor Summary | |
|---|---|
| DelegatingRequestProcessor() | |
| Method Summary | |
|---|---|
| protected  String | determineActionBeanName(ActionMapping mapping)Determine the name of the Actionbean, to be looked up in
 theWebApplicationContext. | 
| protected  Action | getDelegateAction(ActionMapping mapping)Return the delegate Actionfor the given mapping. | 
| protected  WebApplicationContext | getWebApplicationContext()Return the WebApplicationContextthat this processor
 delegates to. | 
|  void | init(ActionServlet actionServlet,
     ModuleConfig moduleConfig) | 
| protected  WebApplicationContext | initWebApplicationContext(ActionServlet actionServlet,
                          ModuleConfig moduleConfig)Fetch ContextLoaderPlugIn's WebApplicationContextfrom theServletContext, falling back to the rootWebApplicationContext. | 
| 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.action.RequestProcessor | 
|---|
| destroy, doForward, doInclude, getInternal, getServletContext, internalModuleRelativeForward, internalModuleRelativeInclude, log, log, process, processActionForm, processActionPerform, processCachedMessages, processContent, processException, processForward, processForwardConfig, 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 | 
|---|
public DelegatingRequestProcessor()
| Method Detail | 
|---|
public void init(ActionServlet actionServlet,
                 ModuleConfig moduleConfig)
          throws ServletException
init in class RequestProcessorServletException
protected WebApplicationContext initWebApplicationContext(ActionServlet actionServlet,
                                                          ModuleConfig moduleConfig)
                                                   throws IllegalStateException
WebApplicationContext from the
 ServletContext, falling back to the root
 WebApplicationContext.
 This context is supposed to contain the Struts Action
 beans to delegate to.
actionServlet - the associated ActionServletmoduleConfig - the associated ModuleConfig
WebApplicationContext
IllegalStateException - if no WebApplicationContext could be foundDelegatingActionUtils.findRequiredWebApplicationContext(org.apache.struts.action.ActionServlet, org.apache.struts.config.ModuleConfig), 
ContextLoaderPlugIn.SERVLET_CONTEXT_PREFIXprotected final WebApplicationContext getWebApplicationContext()
WebApplicationContext that this processor
 delegates to.
protected Action processActionCreate(HttpServletRequest request,
                                     HttpServletResponse response,
                                     ActionMapping mapping)
                              throws IOException
processActionCreate in class RequestProcessorIOExceptiongetDelegateAction(org.apache.struts.action.ActionMapping)
protected Action getDelegateAction(ActionMapping mapping)
                            throws BeansException
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.
mapping - the Struts ActionMapping
Action, or null if none found
BeansException - if thrown by WebApplicationContext methodsdetermineActionBeanName(org.apache.struts.action.ActionMapping)protected String determineActionBeanName(ActionMapping mapping)
Action bean, to be looked up in
 the WebApplicationContext.
 The default implementation takes the
 mapping path and
 prepends the
 module prefix,
 if any.
mapping - the Struts ActionMapping
DelegatingActionUtils.determineActionBeanName(org.apache.struts.action.ActionMapping), 
ActionConfig.getPath(), 
ModuleConfig.getPrefix()| 
 | ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||