From d4c74ad34645119f2f18fc813fe5b9e141560210 Mon Sep 17 00:00:00 2001 From: Sebastien Deleuze Date: Wed, 19 Aug 2015 14:04:15 +0200 Subject: [PATCH] Add an ObjectMapper constructor to MappingJackson2(Json|Xml)View Instead of having to use the default constructor then calling setObjectMapper(ObjectMapper), these constructors allow MappingJackson2JsonView and MappingJackson2XmlView to be created and configured with the desired object mapper in one step. --- .../web/servlet/view/json/AbstractJackson2View.java | 2 +- .../web/servlet/view/json/MappingJackson2JsonView.java | 9 +++++++++ .../web/servlet/view/xml/MappingJackson2XmlView.java | 8 ++++++++ 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/json/AbstractJackson2View.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/json/AbstractJackson2View.java index 8d256a43334..2069bbcd607 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/json/AbstractJackson2View.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/json/AbstractJackson2View.java @@ -61,7 +61,7 @@ public abstract class AbstractJackson2View extends AbstractView { protected AbstractJackson2View(ObjectMapper objectMapper, String contentType) { - this.objectMapper = objectMapper; + setObjectMapper(objectMapper); setContentType(contentType); setExposePathVariables(false); } diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/json/MappingJackson2JsonView.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/json/MappingJackson2JsonView.java index 5799207387f..78f06be2af8 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/json/MappingJackson2JsonView.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/json/MappingJackson2JsonView.java @@ -88,6 +88,15 @@ public class MappingJackson2JsonView extends AbstractJackson2View { super(Jackson2ObjectMapperBuilder.json().build(), DEFAULT_CONTENT_TYPE); } + /** + * Construct a new {@code MappingJackson2JsonView} using the provided + * {@link ObjectMapper} and setting the content type to {@code application/json}. + * @since 4.2.1 + */ + public MappingJackson2JsonView(ObjectMapper objectMapper) { + super(objectMapper, DEFAULT_CONTENT_TYPE); + } + /** * Specify a custom prefix to use for this view's JSON output. diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/xml/MappingJackson2XmlView.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/xml/MappingJackson2XmlView.java index f30c2669787..dfcf59e5231 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/xml/MappingJackson2XmlView.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/xml/MappingJackson2XmlView.java @@ -58,6 +58,14 @@ public class MappingJackson2XmlView extends AbstractJackson2View { super(Jackson2ObjectMapperBuilder.xml().build(), DEFAULT_CONTENT_TYPE); } + /** + * Construct a new {@code MappingJackson2XmlView} using the provided {@link XmlMapper} + * and setting the content type to {@code application/xml}. + * @since 4.2.1 + */ + public MappingJackson2XmlView(XmlMapper xmlMapper) { + super(xmlMapper, DEFAULT_CONTENT_TYPE); + } /** * {@inheritDoc}