Class JsonViewRequestBodyAdvice
java.lang.Object
org.springframework.web.servlet.mvc.method.annotation.RequestBodyAdviceAdapter
org.springframework.web.servlet.mvc.method.annotation.JsonViewRequestBodyAdvice
- All Implemented Interfaces:
RequestBodyAdvice
A
RequestBodyAdvice implementation that adds support for Jackson's
@JsonView annotation declared on a Spring MVC @HttpEntity
or @RequestBody method parameter.
The deserialization view specified in the annotation will be passed in to the
MappingJackson2HttpMessageConverter
which will then use it to deserialize the request body with.
Note that despite @JsonView allowing for more than one class to
be specified, the use for a request body advice is only supported with
exactly one class argument. Consider the use of a composite interface.
- Since:
- 4.2
- Author:
- Sebastien Deleuze
- See Also:
-
JsonViewObjectMapper.readerWithView(Class)
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbeforeBodyRead(HttpInputMessage inputMessage, MethodParameter methodParameter, Type targetType, Class<? extends HttpMessageConverter<?>> selectedConverterType) The default implementation returns the InputMessage that was passed in.booleansupports(MethodParameter methodParameter, Type targetType, Class<? extends HttpMessageConverter<?>> converterType) Invoked first to determine if this interceptor applies.Methods inherited from class org.springframework.web.servlet.mvc.method.annotation.RequestBodyAdviceAdapter
afterBodyRead, handleEmptyBody
-
Constructor Details
-
JsonViewRequestBodyAdvice
public JsonViewRequestBodyAdvice()
-
-
Method Details
-
supports
public boolean supports(MethodParameter methodParameter, Type targetType, Class<? extends HttpMessageConverter<?>> converterType) Description copied from interface:RequestBodyAdviceInvoked first to determine if this interceptor applies.- Parameters:
methodParameter- the method parametertargetType- the target type, not necessarily the same as the method parameter type, e.g. forHttpEntity<String>.converterType- the selected converter type- Returns:
- whether this interceptor should be invoked or not
-
beforeBodyRead
public HttpInputMessage beforeBodyRead(HttpInputMessage inputMessage, MethodParameter methodParameter, Type targetType, Class<? extends HttpMessageConverter<?>> selectedConverterType) throws IOException Description copied from class:RequestBodyAdviceAdapterThe default implementation returns the InputMessage that was passed in.- Specified by:
beforeBodyReadin interfaceRequestBodyAdvice- Overrides:
beforeBodyReadin classRequestBodyAdviceAdapter- Parameters:
inputMessage- the requestmethodParameter- the target method parametertargetType- the target type, not necessarily the same as the method parameter type, e.g. forHttpEntity<String>.selectedConverterType- the converter used to deserialize the body- Returns:
- the input request or a new instance (never
null) - Throws:
IOException
-