|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.springframework.web.servlet.mvc.method.annotation.support.AbstractMessageConverterMethodArgumentResolver org.springframework.web.servlet.mvc.method.annotation.support.AbstractMessageConverterMethodProcessor org.springframework.web.servlet.mvc.method.annotation.support.RequestResponseBodyMethodProcessor
public class RequestResponseBodyMethodProcessor
Resolves method arguments annotated with @RequestBody
and handles
return values from methods annotated with @ResponseBody
by reading
and writing to the body of the request or response with an
HttpMessageConverter
.
An @RequestBody
method argument is also validated if it is
annotated with @javax.validation.Valid
. In case of validation
failure, MethodArgumentNotValidException
is raised and results
in a 400 response status code if DefaultHandlerExceptionResolver
is configured.
Field Summary |
---|
Fields inherited from class org.springframework.web.servlet.mvc.method.annotation.support.AbstractMessageConverterMethodArgumentResolver |
---|
allSupportedMediaTypes, logger, messageConverters |
Constructor Summary | |
---|---|
RequestResponseBodyMethodProcessor(java.util.List<HttpMessageConverter<?>> messageConverters)
|
Method Summary | |
---|---|
void |
handleReturnValue(java.lang.Object returnValue,
MethodParameter returnType,
ModelAndViewContainer mavContainer,
NativeWebRequest webRequest)
Handle the given return value by adding attributes to the model and setting a view or setting the ModelAndViewContainer.setRequestHandled(boolean) flag to true
to indicate the response has been handled directly. |
protected boolean |
isValidationApplicable(java.lang.Object argument,
MethodParameter parameter)
Whether to validate the given @RequestBody method argument. |
java.lang.Object |
resolveArgument(MethodParameter parameter,
ModelAndViewContainer mavContainer,
NativeWebRequest webRequest,
WebDataBinderFactory binderFactory)
Resolves a method parameter into an argument value from a given request. |
boolean |
supportsParameter(MethodParameter parameter)
Whether the given method parameter is supported by this resolver. |
boolean |
supportsReturnType(MethodParameter returnType)
Whether the given method return type is supported by this handler. |
Methods inherited from class org.springframework.web.servlet.mvc.method.annotation.support.AbstractMessageConverterMethodProcessor |
---|
createOutputMessage, getProducibleMediaTypes, writeWithMessageConverters, writeWithMessageConverters |
Methods inherited from class org.springframework.web.servlet.mvc.method.annotation.support.AbstractMessageConverterMethodArgumentResolver |
---|
createInputMessage, readWithMessageConverters, readWithMessageConverters |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public RequestResponseBodyMethodProcessor(java.util.List<HttpMessageConverter<?>> messageConverters)
Method Detail |
---|
public boolean supportsParameter(MethodParameter parameter)
HandlerMethodArgumentResolver
parameter
- the method parameter to check
true
if this resolver supports the supplied parameter;
false
otherwisepublic boolean supportsReturnType(MethodParameter returnType)
HandlerMethodReturnValueHandler
returnType
- the method return type to check
true
if this handler supports the supplied return type;
false
otherwisepublic java.lang.Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws java.lang.Exception
HandlerMethodArgumentResolver
ModelAndViewContainer
provides access to the model for the
request. A WebDataBinderFactory
provides a way to create
a WebDataBinder
instance when needed for data binding and
type conversion purposes.
parameter
- the method parameter to resolve. This parameter must
have previously been passed to
HandlerMethodArgumentResolver.supportsParameter(org.springframework.core.MethodParameter)
and it must have returned true
mavContainer
- the ModelAndViewContainer for the current requestwebRequest
- the current requestbinderFactory
- a factory for creating WebDataBinder
instances
null
.
java.lang.Exception
- in case of errors with the preparation of argument valuesprotected boolean isValidationApplicable(java.lang.Object argument, MethodParameter parameter)
@RequestBody
method argument.
The default implementation looks for @javax.validation.Valid
.
argument
- the resolved argument valueparameter
- the method argumentpublic void handleReturnValue(java.lang.Object returnValue, MethodParameter returnType, ModelAndViewContainer mavContainer, NativeWebRequest webRequest) throws java.io.IOException, HttpMediaTypeNotAcceptableException
HandlerMethodReturnValueHandler
ModelAndViewContainer.setRequestHandled(boolean)
flag to true
to indicate the response has been handled directly.
returnValue
- the value returned from the handler methodreturnType
- the type of the return value. This type must have
previously been passed to
HandlerMethodReturnValueHandler.supportsReturnType(org.springframework.core.MethodParameter)
and it must have returned true
mavContainer
- the ModelAndViewContainer for the current requestwebRequest
- the current request
java.io.IOException
HttpMediaTypeNotAcceptableException
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |