Browse Source

Polishing

pull/940/head
Juergen Hoeller 10 years ago
parent
commit
d59a97c101
  1. 12
      spring-web/src/main/java/org/springframework/http/converter/json/MappingJackson2HttpMessageConverter.java
  2. 7
      spring-web/src/main/java/org/springframework/http/converter/xml/MappingJackson2XmlHttpMessageConverter.java
  3. 35
      spring-webmvc/src/main/java/org/springframework/web/servlet/view/json/AbstractJackson2View.java

12
spring-web/src/main/java/org/springframework/http/converter/json/MappingJackson2HttpMessageConverter.java

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/*
* Copyright 2002-2014 the original author or authors.
* Copyright 2002-2015 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -24,14 +24,14 @@ import com.fasterxml.jackson.databind.ObjectMapper; @@ -24,14 +24,14 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.http.MediaType;
/**
* Implementation of {@link org.springframework.http.converter.HttpMessageConverter HttpMessageConverter} that
* can read and write JSON using <a href="http://wiki.fasterxml.com/JacksonHome">Jackson 2.x's</a> {@link ObjectMapper}.
* Implementation of {@link org.springframework.http.converter.HttpMessageConverter} that can read and
* write JSON using <a href="http://wiki.fasterxml.com/JacksonHome">Jackson 2.x's</a> {@link ObjectMapper}.
*
* <p>This converter can be used to bind to typed beans, or untyped {@link java.util.HashMap HashMap} instances.
* <p>This converter can be used to bind to typed beans, or untyped {@code HashMap} instances.
*
* <p>By default, this converter supports {@code application/json} and {@code application/*+json}
* with {@code UTF-8} character set.
* This can be overridden by setting the {@link #setSupportedMediaTypes supportedMediaTypes} property.
* with {@code UTF-8} character set. This can be overridden by setting the
* {@link #setSupportedMediaTypes supportedMediaTypes} property.
*
* <p>The default constructor uses the default configuration provided by {@link Jackson2ObjectMapperBuilder}.
*

7
spring-web/src/main/java/org/springframework/http/converter/xml/MappingJackson2XmlHttpMessageConverter.java

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/*
* Copyright 2002-2014 the original author or authors.
* Copyright 2002-2015 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -30,8 +30,8 @@ import org.springframework.util.Assert; @@ -30,8 +30,8 @@ import org.springframework.util.Assert;
* Jackson 2.x extension component for reading and writing XML encoded data</a>.
*
* <p>By default, this converter supports {@code application/xml}, {@code text/xml}, and
* {@code application/*+xml} with {@code UTF-8} character set.
* This can be overridden by setting the {@link #setSupportedMediaTypes(java.util.List) supportedMediaTypes} property.
* {@code application/*+xml} with {@code UTF-8} character set. This can be overridden by
* setting the {@link #setSupportedMediaTypes supportedMediaTypes} property.
*
* <p>The default constructor uses the default configuration provided by {@link Jackson2ObjectMapperBuilder}.
*
@ -72,4 +72,5 @@ public class MappingJackson2XmlHttpMessageConverter extends AbstractJackson2Http @@ -72,4 +72,5 @@ public class MappingJackson2XmlHttpMessageConverter extends AbstractJackson2Http
Assert.isAssignable(XmlMapper.class, objectMapper.getClass());
super.setObjectMapper(objectMapper);
}
}

35
spring-webmvc/src/main/java/org/springframework/web/servlet/view/json/AbstractJackson2View.java

@ -122,12 +122,6 @@ public abstract class AbstractJackson2View extends AbstractView { @@ -122,12 +122,6 @@ public abstract class AbstractJackson2View extends AbstractView {
}
}
/**
* Set the attribute in the model that should be rendered by this view.
* When set, all other model attributes will be ignored.
*/
public abstract void setModelKey(String modelKey);
/**
* Disables caching of the generated JSON.
* <p>Default is {@code true}, which will prevent the client from caching the generated JSON.
@ -187,23 +181,13 @@ public abstract class AbstractJackson2View extends AbstractView { @@ -187,23 +181,13 @@ public abstract class AbstractJackson2View extends AbstractView {
return value;
}
/**
* Filter out undesired attributes from the given model.
* The return value can be either another {@link Map} or a single value object.
* @param model the model, as passed on to {@link #renderMergedOutputModel}
* @return the value to be rendered
*/
protected abstract Object filterModel(Map<String, Object> model);
/**
* Write the actual JSON content to the stream.
* @param stream the output stream to use
* @param object the value to be rendered, as returned from {@link #filterModel}
* @throws IOException if writing failed
*/
protected void writeContent(OutputStream stream, Object object)
throws IOException {
protected void writeContent(OutputStream stream, Object object) throws IOException {
JsonGenerator generator = this.objectMapper.getFactory().createGenerator(stream, this.encoding);
writePrefix(generator, object);
@ -230,13 +214,27 @@ public abstract class AbstractJackson2View extends AbstractView { @@ -230,13 +214,27 @@ public abstract class AbstractJackson2View extends AbstractView {
generator.flush();
}
/**
* Set the attribute in the model that should be rendered by this view.
* When set, all other model attributes will be ignored.
*/
public abstract void setModelKey(String modelKey);
/**
* Filter out undesired attributes from the given model.
* The return value can be either another {@link Map} or a single value object.
* @param model the model, as passed on to {@link #renderMergedOutputModel}
* @return the value to be rendered
*/
protected abstract Object filterModel(Map<String, Object> model);
/**
* Write a prefix before the main content.
* @param generator the generator to use for writing content.
* @param object the object to write to the output message.
*/
protected void writePrefix(JsonGenerator generator, Object object) throws IOException {
}
/**
@ -245,7 +243,6 @@ public abstract class AbstractJackson2View extends AbstractView { @@ -245,7 +243,6 @@ public abstract class AbstractJackson2View extends AbstractView {
* @param object the object to write to the output message.
*/
protected void writeSuffix(JsonGenerator generator, Object object) throws IOException {
}
}

Loading…
Cancel
Save