org.springframework.web.servlet.mvc.multiaction |
Package allowing MVC Controller implementations to handle requests
at method rather than class level. This is useful when
we want to avoid having many trivial controller classes, as can
easily happen when using an MVC framework.
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.
|
Java Source File Name | Type | Comment |
AbstractUrlMethodNameResolver.java | Class | Abstract base class for URL-based MethodNameResolver implementations.
Provides infrastructure for mapping handlers to URLs and configurable
URL lookup. |
InternalPathMethodNameResolver.java | Class | Simple implementation of
MethodNameResolver that maps URL to
method name. |
MethodNameResolver.java | Interface | 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. |
MultiActionController.java | Class | Controller implementation that allows multiple request types to be
handled by the same class. |
NoSuchRequestHandlingMethodException.java | Class | Exception thrown when there's no request handling method for a request. |
ParameterMethodNameResolver.java | Class | Implementation of MethodNameResolver which supports several strategies for
mapping parameter values to the names of methods to invoke.
The simplest strategy looks for a specific named parameter, whose value is
considered the name of the method to invoke. |
PropertiesMethodNameResolver.java | Class | The most flexible out-of-the-box implementation of the MethodNameResolver
interface. |