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
public class JsonViewRequestBodyAdvice extends RequestBodyAdviceAdapter
ARequestBodyAdvice
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.Jackson 2.5 or later is required for parameter-level use of
@JsonView
.- Since:
- 4.2
- Author:
- Sebastien Deleuze
- See Also:
JsonView
,ObjectMapper.readerWithView(Class)
Constructor Summary
Constructors Constructor Description JsonViewRequestBodyAdvice()
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description HttpInputMessage
beforeBodyRead(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 Detail
JsonViewRequestBodyAdvice
public JsonViewRequestBodyAdvice()
Method Detail
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