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:
-
JsonView
ObjectMapper.readerWithView(Class)
-
Constructor Summary
-
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.boolean
supports
(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:RequestBodyAdvice
Invoked 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:RequestBodyAdviceAdapter
The default implementation returns the InputMessage that was passed in.- Specified by:
beforeBodyRead
in interfaceRequestBodyAdvice
- Overrides:
beforeBodyRead
in 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
-