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 8d256a4333..2069bbcd60 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 5799207387..78f06be2af 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 f30c266978..dfcf59e523 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}