Class JsonViewResponseBodyAdvice
- java.lang.Object
- org.springframework.web.servlet.mvc.method.annotation.AbstractMappingJacksonResponseBodyAdvice
- org.springframework.web.servlet.mvc.method.annotation.JsonViewResponseBodyAdvice
- All Implemented Interfaces:
ResponseBodyAdvice<Object>
public class JsonViewResponseBodyAdvice extends AbstractMappingJacksonResponseBodyAdvice
AResponseBodyAdvice
implementation that adds support for Jackson's@JsonView
annotation declared on a Spring MVC@RequestMapping
or@ExceptionHandler
method.The serialization view specified in the annotation will be passed in to the
MappingJackson2HttpMessageConverter
which will then use it to serialize the response body.Note that despite
@JsonView
allowing for more than one class to be specified, the use for a response body advice is only supported with exactly one class argument. Consider the use of a composite interface.- Since:
- 4.1
- Author:
- Rossen Stoyanchev
- See Also:
JsonView
,ObjectMapper.writerWithView(Class)
Constructor Summary
Constructors Constructor Description JsonViewResponseBodyAdvice()
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
beforeBodyWriteInternal(MappingJacksonValue bodyContainer, MediaType contentType, MethodParameter returnType, ServerHttpRequest request, ServerHttpResponse response)
Invoked only if the converter type isMappingJackson2HttpMessageConverter
.boolean
supports(MethodParameter returnType, Class<? extends HttpMessageConverter<?>> converterType)
Whether this component supports the given controller method return type and the selectedHttpMessageConverter
type.Methods inherited from class org.springframework.web.servlet.mvc.method.annotation.AbstractMappingJacksonResponseBodyAdvice
beforeBodyWrite, getOrCreateContainer
Constructor Detail
JsonViewResponseBodyAdvice
public JsonViewResponseBodyAdvice()
Method Detail
supports
public boolean supports(MethodParameter returnType, Class<? extends HttpMessageConverter<?>> converterType)
Description copied from interface:ResponseBodyAdvice
Whether this component supports the given controller method return type and the selectedHttpMessageConverter
type.- Specified by:
supports
in interfaceResponseBodyAdvice<Object>
- Overrides:
supports
in classAbstractMappingJacksonResponseBodyAdvice
- Parameters:
returnType
- the return typeconverterType
- the selected converter type- Returns:
true
ifResponseBodyAdvice.beforeBodyWrite(T, org.springframework.core.MethodParameter, org.springframework.http.MediaType, java.lang.Class<? extends org.springframework.http.converter.HttpMessageConverter<?>>, org.springframework.http.server.ServerHttpRequest, org.springframework.http.server.ServerHttpResponse)
should be invoked;false
otherwise
beforeBodyWriteInternal
protected void beforeBodyWriteInternal(MappingJacksonValue bodyContainer, MediaType contentType, MethodParameter returnType, ServerHttpRequest request, ServerHttpResponse response)
Description copied from class:AbstractMappingJacksonResponseBodyAdvice
Invoked only if the converter type isMappingJackson2HttpMessageConverter
.- Specified by:
beforeBodyWriteInternal
in classAbstractMappingJacksonResponseBodyAdvice