|
Spring Framework | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver
org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor
org.springframework.web.servlet.mvc.method.annotation.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.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
|
readWithMessageConverters(HttpInputMessage inputMessage,
MethodParameter methodParam,
java.lang.Class<T> paramType)
Creates the method argument value of the expected parameter type by reading from the given HttpInputMessage. |
|
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.AbstractMessageConverterMethodProcessor |
---|
createOutputMessage, getProducibleMediaTypes, writeWithMessageConverters, writeWithMessageConverters |
Methods inherited from class org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver |
---|
createInputMessage, 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
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
.
MethodArgumentNotValidException
- if validation fails
HttpMessageNotReadableException
- if RequestBody.required()
is true
and there is no body content or if there is no suitable
converter to read the content with.
java.lang.Exception
- in case of errors with the preparation of argument valuesprotected <T> java.lang.Object readWithMessageConverters(HttpInputMessage inputMessage, MethodParameter methodParam, java.lang.Class<T> paramType) throws java.io.IOException, HttpMediaTypeNotSupportedException
AbstractMessageConverterMethodArgumentResolver
readWithMessageConverters
in class AbstractMessageConverterMethodArgumentResolver
T
- the expected type of the argument value to be createdinputMessage
- the HTTP input message representing the current requestmethodParam
- the method argumentparamType
- the type of the argument value to be created
java.io.IOException
- if the reading from the request fails
HttpMediaTypeNotSupportedException
- if no suitable message converter is foundpublic 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
|
Spring Framework | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |