struts-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Michael Jouravlev" <>
Subject Struts 1 (and possibly Struts 2) terminology: what is Action/Command
Date Tue, 18 Jul 2006 18:56:26 GMT
Struts 1 documentation does not use word "dispatcher", and it uses
verb "dispatch" just only couple of times. This causes terminology
problems around Struts components. Pre-1.3 Struts versions worked
around this issue using terms "action-based" or "action-oriented", but
with 1.3 this terminology falls flat because 1.3 allows to define both
Commands and Actions as request endpoint. In a way, Struts 1.3 is not
an action-based framework anymore.

A word is needed to collectively define Action/Command as:

* part of the controller
* request endpoint
* event dispatcher
* view manager

I believe that Ted said that Struts implements Service-to-Worker
pattern (being part of a broader Front Controller pattern). This seems
appropriate [1]:

=== cut here ===
Service to Worker describes the combination of the Front Controller
and View Helper patterns with a dispatcher component.

While this pattern and the Dispatcher View pattern describe a similar
structure, the two patterns suggest a different division of labor
among the components. In Service to Worker, the controller and the
dispatcher have more responsibilities.

Since the Service to Worker and Dispatcher View patterns represent a
common combination of other patterns from the catalog, each warrants
its own name to promote efficient communication among developers.
Unlike the Service to Worker pattern, the Dispatcher View pattern
suggests deferring content retrieval to the time of view processing.

In the Dispatcher View pattern, the dispatcher typically plays a
limited to moderate role in view management. In the Service to Worker
pattern, the dispatcher typically plays a moderate to large role in
view management.
=== cut here ===

Therefore, I suggest to collectively call Action/Command a dispatcher.
This correlates nicely to J2EE core patterns and blueprints. It also
works well in cases where an Action/Command serves as event dispatcher
having method handlers that correspond to events.

I am working on improving and enhancing Struts documentation and I
need strict definitions of Struts components. Does anyone have a
better term for Action/Command? Should this be aligned with Struts 2
terminology where "dispatcher" is apparently used for base controller
component? What about "secondary controller", "secondary dispatcher"
or simply "worker"?



To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message