diff --git a/org.springframework.web/src/main/java/org/springframework/http/converter/StringHttpMessageConverter.java b/org.springframework.web/src/main/java/org/springframework/http/converter/StringHttpMessageConverter.java index b621d5ebfe..3e59116b03 100644 --- a/org.springframework.web/src/main/java/org/springframework/http/converter/StringHttpMessageConverter.java +++ b/org.springframework.web/src/main/java/org/springframework/http/converter/StringHttpMessageConverter.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2011 the original author or authors. + * Copyright 2002-2012 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. @@ -32,9 +32,9 @@ import org.springframework.util.FileCopyUtils; /** * Implementation of {@link HttpMessageConverter} that can read and write strings. * - *

By default, this converter supports all media types (*/*), and writes with a {@code - * Content-Type} of {@code text/plain}. This can be overridden by setting the {@link - * #setSupportedMediaTypes(java.util.List) supportedMediaTypes} property. + *

By default, this converter supports all media types (*/*), + * and writes with a {@code Content-Type} of {@code text/plain}. This can be overridden + * by setting the {@link #setSupportedMediaTypes supportedMediaTypes} property. * * @author Arjen Poutsma * @since 3.0 @@ -43,12 +43,28 @@ public class StringHttpMessageConverter extends AbstractHttpMessageConverter availableCharsets; private boolean writeAcceptCharset = true; + + /** + * A default constructor that uses {@code "ISO-8859-1"} as the default charset. + * @see #StringHttpMessageConverter(Charset) + */ public StringHttpMessageConverter() { - super(new MediaType("text", "plain", DEFAULT_CHARSET), MediaType.ALL); + this(DEFAULT_CHARSET); + } + + /** + * A constructor accepting a default charset to use if the requested content + * type does not specify one. + */ + public StringHttpMessageConverter(Charset defaultCharset) { + super(new MediaType("text", "plain", defaultCharset), MediaType.ALL); + this.defaultCharset = defaultCharset; this.availableCharsets = new ArrayList(Charset.availableCharsets().values()); } @@ -60,6 +76,7 @@ public class StringHttpMessageConverter extends AbstractHttpMessageConverter clazz) { return String.class.equals(clazz); @@ -79,13 +96,13 @@ public class StringHttpMessageConverter extends AbstractHttpMessageConverterBy default, returns {@link Charset#availableCharsets()}. Can be overridden in subclasses. - * * @return the list of accepted charsets */ protected List getAcceptedCharsets() { @@ -108,7 +123,7 @@ public class StringHttpMessageConverter extends AbstractHttpMessageConverter