|
The Spring Framework | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: REQUIRED | OPTIONAL | DETAIL: ELEMENT |
@Target(value={METHOD,TYPE}) @Retention(value=RUNTIME) @Documented public @interface RequestMapping
Annotation for mapping web requests onto specific handler classes and/or handler methods. Provides consistent style between Servlet and Portlet environments, with the semantics adapting to the concrete environment.
NOTE: Method-level mappings are only allowed to narrow the mapping expressed at the class level (if any). HTTP paths / portlet modes need to uniquely map onto specific handler beans, with any given path / mode only allowed to be mapped onto one specific handler bean (not spread across multiple handler beans). It is strongly recommended to co-locate related handler methods into the same bean.
Handler methods which are annotated with this annotation are allowed to have very flexible signatures. They may have arguments of the following types, in arbitrary order (except for validation results, which need to follow right after the corresponding command object, if desired):
WebRequest
.
Locale
for the current request locale.
InputStream
/ Reader
for access
to the request's content.
OutputStream
/ Writer
for generating
the response's content.
@RequestParam
annotated parameters for access to
specific request parameters.
Map
/ ModelMap
for
enriching the implicit model that will be exposed to the web view.
InitBinder
methods
and/or the HandlerAdapter configuration - see the "webBindingInitializer"
property on AnnotationMethodHandlerAdapter.
Such command objects along with their validation results will be exposed
as model attributes, by default using the non-qualified command class name
in property notation (e.g. "orderAddress" for type "mypackage.OrderAddress").
Specify a parameter-level ModelAttribute
annotation for declaring
a specific model attribute name.
Errors
/
BindingResult
validation results
for a preceding command/form object (the immediate preceding argument).
SessionStatus
status handle
for marking form processing as complete (triggering the cleanup of session
attributes that have been indicated by the SessionAttributes
annotation
at the handler type level).
The following return types are supported for handler methods:
ModelAndView
object (Servlet MVC or Portlet MVC),
with the model implicitly enriched with command objects and the results
of ModelAttribute
annotated reference data accessor methods.
Model
object,
with the model implicitly enriched with command objects and the results
of ModelAttribute
annotated reference data accessor methods.
Map
object for exposing a model,
with the view name implicitly determined through a
RequestToViewNameTranslator
and the model implicitly enriched with command objects and the results
of ModelAttribute
annotated reference data accessor methods.
View
object, with the
model implicitly determined through command objects and
ModelAttribute
annotated reference data accessor methods.
The handler method may also programmatically enrich the model by
declaring a ModelMap
argument
(see above).
String
value which is interpreted as view name,
with the model implicitly determined through command objects and
ModelAttribute
annotated reference data accessor methods.
The handler method may also programmatically enrich the model by
declaring a ModelMap
argument
(see above).
void
if the method handles the response itself
(e.g. by writing the response content directly).
NOTE: @RequestMapping
will only be processed if a
corresponding HandlerMapping
(for type level annotations)
and/or HandlerAdapter
(for method level annotations) is
present in the dispatcher. This is the case by default in both
DispatcherServlet
and DispatcherPortlet
.
However, if you are defining custom HandlerMappings
or
HandlerAdapters
, then you need to make sure that a
corresponding custom DefaultAnnotationHandlerMapping
and/or AnnotationMethodHandlerAdapter
is defined as well
- provided that you intend to use @RequestMapping
.
RequestParam
,
ModelAttribute
,
SessionAttributes
,
InitBinder
,
WebRequest
,
DefaultAnnotationHandlerMapping
,
AnnotationMethodHandlerAdapter
,
DefaultAnnotationHandlerMapping
,
AnnotationMethodHandlerAdapter
Optional Element Summary | |
---|---|
RequestMethod[] |
method
The HTTP request methods to map to, narrowing the primary mapping: GET, POST, HEAD, OPTIONS, PUT, DELETE, TRACE. |
String[] |
params
The parameters of the mapped request, narrowing the primary mapping. |
String[] |
value
The primary mapping expressed by this annotation. |
public abstract String[] value
In a Servlet environment: the path mapping URLs (e.g. "/myPath.do")
In a Portlet environment: the mapped portlet modes (e.g. "EDIT")
Supported at the type level as well as at the method level! When used at the type level, all method level mappings inherit this primary mapping, narrowing it for a specific handler method.
public abstract RequestMethod[] method
Only supported at the handler method level in Servlet environments!
public abstract String[] params
Same format for any environment: a sequence of "myParam=myValue" style expressions, with a request only mapped if each such parameter is found to have the given value. "myParam" style expressions are also supported, with such parameters having to be present in the request (allowed to have any value).
Only supported at the handler method level!
|
The Spring Framework | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: REQUIRED | OPTIONAL | DETAIL: ELEMENT |