diff --git a/spring-web/src/main/java/org/springframework/web/accept/ContentNegotiationManagerFactoryBean.java b/spring-web/src/main/java/org/springframework/web/accept/ContentNegotiationManagerFactoryBean.java index 395de4772a..3861dc3ab7 100644 --- a/spring-web/src/main/java/org/springframework/web/accept/ContentNegotiationManagerFactoryBean.java +++ b/spring-web/src/main/java/org/springframework/web/accept/ContentNegotiationManagerFactoryBean.java @@ -233,7 +233,17 @@ public class ContentNegotiationManagerFactoryBean *
By default this is not set.
* @see #setDefaultContentTypeStrategy
*/
- public void setDefaultContentType(List By default this is not set.
+ * @see #setDefaultContentTypeStrategy
+ * @since 5.0
+ */
+ public void setDefaultContentTypes(List
- * List is ordered in the same manner as a "quality" parameter on incoming requests.
- * If destinations which do not support any of the media types provided are present,
- * end the list with {@link MediaType#ALL} to allow standard media type determination
+ * Constructor with an ordered List of default {@code MediaType}'s to return
+ * for use in applications that support a variety of content types.
+ * Consider appending {@link MediaType#ALL} at the end if destinations
+ * are present which do not support any of the other default media types.
+ * @since 5.0
*/
public FixedContentNegotiationStrategy(List
- * Media types are ordered in the same manner as a "quality" parameter on incoming
- * requests. If destinations which do not support any of the media types provided are
- * present, end the list with {@link MediaType#ALL} to allow standard media type
- * determination
- *
- * By default this is not set.
- *
+ * Set the default content type(s) to use when no content type is requested
+ * in order of priority.
+ *
+ * If destinations are present that do not support any of the given media
+ * types, consider appending {@link MediaType#ALL} at the end.
+ *
+ * By default this is not set.
+ *
* @see #defaultContentTypeStrategy
*/
public ContentNegotiationConfigurer defaultContentType(MediaType... defaultContentTypes) {
- this.factory.setDefaultContentType(Arrays.asList(defaultContentTypes));
+ this.factory.setDefaultContentTypes(Arrays.asList(defaultContentTypes));
return this;
}
diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/config/annotation/ContentNegotiationConfigurerTests.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/config/annotation/ContentNegotiationConfigurerTests.java
index 7a4d5e7b2c..7c42ceed11 100644
--- a/spring-webmvc/src/test/java/org/springframework/web/servlet/config/annotation/ContentNegotiationConfigurerTests.java
+++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/config/annotation/ContentNegotiationConfigurerTests.java
@@ -20,6 +20,7 @@ import java.util.Collections;
import org.junit.Before;
import org.junit.Test;
+
import org.springframework.http.MediaType;
import org.springframework.mock.web.test.MockHttpServletRequest;
import org.springframework.web.accept.ContentNegotiationManager;
@@ -27,7 +28,7 @@ import org.springframework.web.accept.FixedContentNegotiationStrategy;
import org.springframework.web.context.request.NativeWebRequest;
import org.springframework.web.context.request.ServletWebRequest;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
/**
* Test fixture for {@link ContentNegotiationConfigurer} tests.
@@ -55,7 +56,7 @@ public class ContentNegotiationConfigurerTests {
this.servletRequest.setRequestURI("/flower.gif");
assertEquals("Should be able to resolve file extensions by default",
- Arrays.asList(MediaType.IMAGE_GIF), manager.resolveMediaTypes(this.webRequest));
+ MediaType.IMAGE_GIF, manager.resolveMediaTypes(this.webRequest).get(0));
this.servletRequest.setRequestURI("/flower?format=gif");
this.servletRequest.addParameter("format", "gif");
@@ -67,7 +68,7 @@ public class ContentNegotiationConfigurerTests {
this.servletRequest.addHeader("Accept", MediaType.IMAGE_GIF_VALUE);
assertEquals("Should resolve Accept header by default",
- Arrays.asList(MediaType.IMAGE_GIF), manager.resolveMediaTypes(this.webRequest));
+ MediaType.IMAGE_GIF, manager.resolveMediaTypes(this.webRequest).get(0));
}
@Test
@@ -76,7 +77,7 @@ public class ContentNegotiationConfigurerTests {
ContentNegotiationManager manager = this.configurer.getContentNegotiationManager();
this.servletRequest.setRequestURI("/flower.json");
- assertEquals(Arrays.asList(MediaType.APPLICATION_JSON), manager.resolveMediaTypes(this.webRequest));
+ assertEquals(MediaType.APPLICATION_JSON, manager.resolveMediaTypes(this.webRequest).get(0));
}
@Test
@@ -89,7 +90,7 @@ public class ContentNegotiationConfigurerTests {
this.servletRequest.setRequestURI("/flower");
this.servletRequest.addParameter("f", "json");
- assertEquals(Arrays.asList(MediaType.APPLICATION_JSON), manager.resolveMediaTypes(this.webRequest));
+ assertEquals(MediaType.APPLICATION_JSON, manager.resolveMediaTypes(this.webRequest).get(0));
}
@Test
@@ -108,9 +109,9 @@ public class ContentNegotiationConfigurerTests {
this.configurer.defaultContentType(MediaType.APPLICATION_JSON);
ContentNegotiationManager manager = this.configurer.getContentNegotiationManager();
- assertEquals(Arrays.asList(MediaType.APPLICATION_JSON), manager.resolveMediaTypes(this.webRequest));
+ assertEquals(MediaType.APPLICATION_JSON, manager.resolveMediaTypes(this.webRequest).get(0));
}
-
+
@Test
public void setMultipleDefaultContentTypes() throws Exception {
this.configurer.defaultContentType(MediaType.APPLICATION_JSON, MediaType.ALL);
@@ -124,6 +125,6 @@ public class ContentNegotiationConfigurerTests {
this.configurer.defaultContentTypeStrategy(new FixedContentNegotiationStrategy(MediaType.APPLICATION_JSON));
ContentNegotiationManager manager = this.configurer.getContentNegotiationManager();
- assertEquals(Arrays.asList(MediaType.APPLICATION_JSON), manager.resolveMediaTypes(this.webRequest));
+ assertEquals(MediaType.APPLICATION_JSON, manager.resolveMediaTypes(this.webRequest).get(0));
}
}