[ https://issues.apache.org/struts/browse/STR-2940?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_40250 ]
Paul Benedict commented on STR-2940: ------------------------------------ As I said, I do not oppose the idea in principal, but the idea is progressing and needs some more refinements. This might take a while, but keep chugging along. Some things to consider: 1) While it is convenient to place the dispatcher inside of Action, it's the wrong place in terms of architecture. The action should be the end-point and not have controller-like functionality bleed into it. Perhaps it's too late for S1 to realize that, but if you can figure out how to have the dispatcher outside of the Action, that would be better. Perhaps this should belong to the Command that invokes the Action. 2) I see where you are going by defining <event> tags vs. stuffing the "parameter" attribute. This makes sense. However, I'd like to see how this plays out. Still undecided because it's a much more risker change, imo. 3) I prefer the attribute to be "dispatcher" (verb) because the classes are known as Dispatcher(s). > Base Action should implement dispatch functionality (building a > coarse-grained action) > -------------------------------------------------------------------------------------- > > Key: STR-2940 > URL: https://issues.apache.org/struts/browse/STR-2940 > Project: Struts 1 > Issue Type: Improvement > Components: Core > Reporter: Michael Jouravlev > Assigned To: Michael Jouravlev > Priority: Minor > > 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. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.