Commit 0b894022 authored by Dave Syer's avatar Dave Syer

Add spring.thymeleaf.contentType (defaults to HTML)

User can specify the content type in external properties now, optionally
ommitting the charset (since that is duplicated). If charset is not
appended by user Spring will do it.

Fixes gh-671
parent 1e0c1d15
...@@ -178,6 +178,9 @@ public class ThymeleafAutoConfiguration { ...@@ -178,6 +178,9 @@ public class ThymeleafAutoConfiguration {
resolver.setTemplateEngine(this.templateEngine); resolver.setTemplateEngine(this.templateEngine);
resolver.setCharacterEncoding(this.environment.getProperty("encoding", resolver.setCharacterEncoding(this.environment.getProperty("encoding",
"UTF-8")); "UTF-8"));
resolver.setContentType(addEncoding(
this.environment.getProperty("contentType", "text/html"),
resolver.getCharacterEncoding()));
resolver.setExcludedViewNames(this.environment.getProperty( resolver.setExcludedViewNames(this.environment.getProperty(
"excludedViewNames", String[].class)); "excludedViewNames", String[].class));
resolver.setViewNames(this.environment.getProperty("viewNames", resolver.setViewNames(this.environment.getProperty("viewNames",
...@@ -188,6 +191,15 @@ public class ThymeleafAutoConfiguration { ...@@ -188,6 +191,15 @@ public class ThymeleafAutoConfiguration {
return resolver; return resolver;
} }
private String addEncoding(String type, String charset) {
if (type.contains("charset=")) {
return type;
}
else {
return type + ";charset=" + charset;
}
}
} }
@Configuration @Configuration
......
...@@ -84,6 +84,7 @@ public class ThymeleafAutoConfigurationTests { ...@@ -84,6 +84,7 @@ public class ThymeleafAutoConfigurationTests {
assertEquals("UTF-16", ((TemplateResolver) resolver).getCharacterEncoding()); assertEquals("UTF-16", ((TemplateResolver) resolver).getCharacterEncoding());
ThymeleafViewResolver views = this.context.getBean(ThymeleafViewResolver.class); ThymeleafViewResolver views = this.context.getBean(ThymeleafViewResolver.class);
assertEquals("UTF-16", views.getCharacterEncoding()); assertEquals("UTF-16", views.getCharacterEncoding());
assertEquals("text/html;charset=UTF-16", views.getContentType());
} }
@Test @Test
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment