Uploaded image for project: 'Struts 1'
  1. Struts 1
  2. STR-2940

Base Action should implement dispatch functionality (building a coarse-grained action)

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Minor
    • Resolution: Won't Fix
    • None
    • None
    • Core
    • 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

          Activity

            People

              pbenedict Paul Benedict
              jmikus@gmail.com Michael Jouravlev
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: