Details
-
Improvement
-
Status: Closed
-
Minor
-
Resolution: Won't Fix
-
None
-
None
-
None
Description
Since DispatchAction was introduced, it became possible to write actions in two styles:
- Fine-grained actions that process only one kind of request / command / event. These are standard Action classes where code is written in execute() method.
- Coarse-grained actions that process several commands/events. These are DispatchAction, MappingDispatchAction, LookupDispatchAction and EventDispatchAction.
Building coarse-grained actions always has been kind of hack with either using the generic "parameter" attribute of an action mapping, or with building event-to-method maps in the code.
The proposed enhancement has the following goals:
- Add dispatch functionality to base Action without affecting current Action usage.
- Accept that both fine-grained and coarse-grained approaches are valid and should be equally represented; one approach should not suffer from dominating of another.
- Extend syntax of an action mapping to allow event defintion using designated elements instead of using hacks like generic "parameter" attribute.
- Allow using wildcards in event definitions.
- With a coarse-grained action it is easier to introduce a concept of a web resource that can be affected by several events, can have state and can render several views. This concept allows to draw some similarities between a Model 2 framework like Struts and code-behind framework like .NET: Action + ActionForm is a code-behind, JSP is markup, event-handling methods in an Action class are event handlers.
Introduction of Command class in Struts 1.3.x does not affect coarse-grained actions, these actions should be implemented with an Action class.
Action class retrofitted to support dispatch functionality will behave exactly like EventDispatchAction when used as a coarce-grained action.
Attachments
Issue Links
- is related to
-
STR-3168 Add dispatching support to Controller and Action configuration
- Resolved