See: Description
Interface | Description |
---|---|
MethodNameResolver |
Interface that parameterizes the MultiActionController class
using the Strategy GoF Design pattern, allowing
the mapping from incoming request to handler method name
to be varied without affecting other application code.
|
Class | Description |
---|---|
AbstractUrlMethodNameResolver |
Abstract base class for URL-based
MethodNameResolver implementations. |
InternalPathMethodNameResolver |
Simple implementation of
MethodNameResolver that maps URL to
method name. |
MultiActionController |
Controller
implementation that allows multiple request types to be handled by the same
class. |
ParameterMethodNameResolver |
Implementation of
MethodNameResolver which supports several strategies
for mapping parameter values to the names of methods to invoke. |
PropertiesMethodNameResolver |
The most flexible out-of-the-box implementation of the
MethodNameResolver
interface. |
Exception | Description |
---|---|
NoSuchRequestHandlingMethodException |
Exception thrown when there is no handler method ("action" method)
for a specific HTTP request.
|
Typically a controller that handles multiple request types will extend MultiActionController, and implement multiple request handling methods that will be invoked by reflection if they follow this class' naming convention. Classes are analyzed at startup and methods cached, so the performance overhead of reflection in this approach is negligible.
This approach is analogous to the Struts 1.1 DispatcherAction class, but more sophisticated, as it supports configurable mapping from requests to URLs and allows for delegation as well as subclassing.
This package is discussed in Chapter 12 of Expert One-On-One J2EE Design and Development by Rod Johnson, and used in the sample application.