org.springframework.web.struts |
Support classes for integrating a Struts web tier with a Spring middle
tier which is typically hosted in a Spring root WebApplicationContext.
Supports easy access to the Spring root WebApplicationContext
from Struts Actions via the ActionSupport and DispatchActionSupport
classes. Actions have full access to Spring's WebApplicationContext
facilities in this case, and explicitly look up Spring-managed beans.
Also supports wiring Struts Actions as Spring-managed beans in
a ContextLoaderPlugIn context, passing middle tier references to them
via bean references, using the Action path as bean name. There are two
ways to make Struts delegate Action lookup to the ContextLoaderPlugIn:
- Use DelegationActionProxy as Action "type" in struts-config.
There's no further setup necessary; you can choose any RequestProcessor.
Each such proxy will automatically delegate to the corresponding
Spring-managed Action bean in the ContextLoaderPlugIn context.
- Configure DelegatingRequestProcessor as "processorClass" in
struts-config, using the original Action "type" (possibly generated
by XDoclet) or no "type" at all. To also use Tiles, configure
DelegatingTilesRequestProcessor instead.
|
Java Source File Name | Type | Comment |
ActionServletAwareProcessor.java | Class | BeanPostProcessor implementation that passes the ActionServlet to beans
that extend the Struts Action class. |
ActionSupport.java | Class | Convenience class for Spring-aware Struts 1.1+ Actions.
Provides a reference to the current Spring application context, e.g.
for bean lookup or resource loading. |
AutowiringRequestProcessor.java | Class | Subclass of Struts's default RequestProcessor that autowires Struts Actions
with Spring beans defined in ContextLoaderPlugIn's WebApplicationContext
or - in case of general service layer beans - in the root WebApplicationContext.
In the Struts config file, you simply continue to specify the original
Action class. |
AutowiringTilesRequestProcessor.java | Class | 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 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. |
ContextLoaderPlugIn.java | Class | Struts 1.1+ PlugIn that loads a Spring application context for the Struts
ActionServlet. |
DelegatingActionProxy.java | Class | Proxy for a Spring-managed Struts Action that is defined in
ContextLoaderPlugIn ContextLoaderPlugIn'sWebApplicationContext .
The proxy is defined in the Struts config file, specifying this
class as the action class. |
DelegatingActionUtils.java | Class | Common methods for letting Struts Actions work with a
Spring WebApplicationContext.
As everything in Struts is based on concrete inheritance,
we have to provide an Action subclass (DelegatingActionProxy) and
two RequestProcessor subclasses (DelegatingRequestProcessor and
DelegatingTilesRequestProcessor). |
DelegatingRequestProcessor.java | Class | Subclass of Struts's default
RequestProcessor that looks up
Spring-managed Struts
Action Actions defined in
ContextLoaderPlugIn 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. |
DelegatingTilesRequestProcessor.java | Class | 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 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. |
DispatchActionSupport.java | Class | Convenience class for Spring-aware Struts 1.1+ DispatchActions.
Provides a reference to the current Spring application context, e.g.
for bean lookup or resource loading. |
LookupDispatchActionSupport.java | Class | Convenience class for Spring-aware Struts 1.1+ LookupDispatchActions.
Provides a reference to the current Spring application context, e.g.
for bean lookup or resource loading. |
MappingDispatchActionSupport.java | Class | Convenience class for Spring-aware Struts 1.2 MappingDispatchActions.
Provides a reference to the current Spring application context, e.g.
for bean lookup or resource loading. |
SpringBindingActionForm.java | Class | A thin Struts ActionForm adapter that delegates to Spring's more complete
and advanced data binder and Errors object underneath the covers to bind
to POJOs and manage rejected values. |