| 
 | ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.apache.struts.action.Action
org.springframework.web.struts.DelegatingActionProxy
public class DelegatingActionProxy
Proxy for a Spring-managed Struts Action that is defined in
 ContextLoaderPlugIn's
 WebApplicationContext.
 
The proxy is defined in the Struts config file, specifying this
 class as the action class. This class will delegate to a Struts
 Action bean in the ContextLoaderPlugIn context.
 
<action path="/login" type="org.springframework.web.struts.DelegatingActionProxy"/>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 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 want to avoid having to specify DelegatingActionProxy
 as the Action type in your struts-config file (for example to
 be able to generate your Struts config file with XDoclet) consider using the
 DelegatingRequestProcessor.
 The latter's disadvantage is that it might conflict with the need
 for a different RequestProcessor subclass.
 
The default implementation delegates to the DelegatingActionUtils
 class as much as possible, to reuse as much code as possible with
 DelegatingRequestProcessor and
 DelegatingTilesRequestProcessor.
 
Note: The idea of delegating to Spring-managed Struts Actions originated in
 Don Brown's Spring Struts Plugin.
 ContextLoaderPlugIn and DelegatingActionProxy
 constitute a clean-room implementation of the same idea, essentially
 superseding the original plugin. Many thanks to Don Brown and Matt Raible
 for the original work and for the agreement to reimplement the idea in
 Spring proper!
determineActionBeanName(org.apache.struts.action.ActionMapping), 
DelegatingRequestProcessor, 
DelegatingTilesRequestProcessor, 
DelegatingActionUtils, 
ContextLoaderPlugIn| Field Summary | 
|---|
| Fields inherited from class org.apache.struts.action.Action | 
|---|
| defaultLocale, servlet | 
| Constructor Summary | |
|---|---|
| DelegatingActionProxy() | |
| Method Summary | |
|---|---|
| protected  String | determineActionBeanName(ActionMapping mapping)Determine the name of the Actionbean, to be looked up in
 theWebApplicationContext. | 
|  ActionForward | execute(ActionMapping mapping,
        ActionForm form,
        HttpServletRequest request,
        HttpServletResponse response)Pass the execute call on to the Spring-managed delegate Action. | 
| protected  Action | getDelegateAction(ActionMapping mapping)Return the delegate Actionfor the givenmapping. | 
| protected  WebApplicationContext | getWebApplicationContext(ActionServlet actionServlet,
                         ModuleConfig moduleConfig)Fetch ContextLoaderPlugIn's WebApplicationContextfrom theServletContext, falling back to the rootWebApplicationContext. | 
| Methods inherited from class org.apache.struts.action.Action | 
|---|
| addErrors, addMessages, execute, generateToken, getDataSource, getDataSource, getErrors, getLocale, getMessages, getResources, getResources, getServlet, isCancelled, isTokenValid, isTokenValid, resetToken, saveErrors, saveErrors, saveErrors, saveMessages, saveMessages, saveToken, setLocale, setServlet | 
| Methods inherited from class java.lang.Object | 
|---|
| clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | 
| Constructor Detail | 
|---|
public DelegatingActionProxy()
| Method Detail | 
|---|
public ActionForward execute(ActionMapping mapping,
                             ActionForm form,
                             HttpServletRequest request,
                             HttpServletResponse response)
                      throws Exception
Action.
execute in class ActionExceptiongetDelegateAction(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
BeansException - if thrown by WebApplicationContext methodsdetermineActionBeanName(org.apache.struts.action.ActionMapping)
protected WebApplicationContext getWebApplicationContext(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 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 | |||||||||