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
This commit is contained in:
Dave Syer 2014-04-15 07:10:08 -07:00
parent 1e0c1d1564
commit 0b89402240
2 changed files with 13 additions and 0 deletions

View File

@ -178,6 +178,9 @@ public class ThymeleafAutoConfiguration {
resolver.setTemplateEngine(this.templateEngine);
resolver.setCharacterEncoding(this.environment.getProperty("encoding",
"UTF-8"));
resolver.setContentType(addEncoding(
this.environment.getProperty("contentType", "text/html"),
resolver.getCharacterEncoding()));
resolver.setExcludedViewNames(this.environment.getProperty(
"excludedViewNames", String[].class));
resolver.setViewNames(this.environment.getProperty("viewNames",
@ -188,6 +191,15 @@ public class ThymeleafAutoConfiguration {
return resolver;
}
private String addEncoding(String type, String charset) {
if (type.contains("charset=")) {
return type;
}
else {
return type + ";charset=" + charset;
}
}
}
@Configuration

View File

@ -84,6 +84,7 @@ public class ThymeleafAutoConfigurationTests {
assertEquals("UTF-16", ((TemplateResolver) resolver).getCharacterEncoding());
ThymeleafViewResolver views = this.context.getBean(ThymeleafViewResolver.class);
assertEquals("UTF-16", views.getCharacterEncoding());
assertEquals("text/html;charset=UTF-16", views.getContentType());
}
@Test