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
ARequestBodyAdviceimplementation that adds support for Jackson's@JsonViewannotation declared on a Spring MVC@HttpEntityor@RequestBodymethod parameter.The deserialization view specified in the annotation will be passed in to the
MappingJackson2HttpMessageConverterwhich will then use it to deserialize the request body with.Note that despite
@JsonViewallowing 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
Constructors Constructor Description JsonViewRequestBodyAdvice()
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description HttpInputMessagebeforeBodyRead(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 Detail
JsonViewRequestBodyAdvice
public JsonViewRequestBodyAdvice()
Method Detail
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