An action describes how to process requests with a particular module-relative path. An action is made of
- a set of parameter configurations,
- a sequence of filters,
- a core action command,
- a set of dispatch configurations,
- a set of exception handlers,
- an optional dispatcher.
Filters, action commands and exception handlers are instantiated and initialized by the module during startup. There will be exactly one instance per corresponding configuration element.
The controller combines an action's filters and command into a chain, the action command being the last link. Such a chain presents itself as a Command implementation. "Invoking an action" is a synonym for executing the chain's execute() method.
An action invocation results in a dispatch configuration. Typically, an action command selects one of its dispatch configurations. However, an action may also dynamically create a dispatch result.
If a filter or action command throws an exception, the module will catch it, select an exception handler and invoke it. In this case, the dispatch configuration will be provided by the exception handler.
The resulting dispatch configuration is then passed to the dispatcher to dispatch the request.