Added configuration parameters at ThymeleafProperties for "fullModeViewNames" and "chunkedModeViewNames"

This commit is contained in:
Daniel Fernández
2017-10-04 01:48:32 +02:00
committed by Brian Clozel
parent ab8aa6bb6c
commit 7de6472477
3 changed files with 47 additions and 0 deletions

View File

@@ -264,6 +264,8 @@ public class ThymeleafAutoConfiguration {
resolver.setResponseMaxChunkSizeBytes(
this.properties.getReactive().getMaxChunkSize());
}
resolver.setFullModeViewNames(this.properties.getReactive().getFullModeViewNames());
resolver.setChunkedModeViewNames(this.properties.getReactive().getChunkedModeViewNames());
// This resolver acts as a fallback resolver (e.g. like a
// InternalResourceViewResolver) so it needs to have low precedence
resolver.setOrder(Ordered.LOWEST_PRECEDENCE - 5);

View File

@@ -227,6 +227,19 @@ public class ThymeleafProperties {
*/
private List<MediaType> mediaTypes;
/**
* Comma-separated list of view names (patterns allowed) that should be executed in FULL mode
* even if a max chunk size is set.
*/
private String[] fullModeViewNames;
/**
* Comma-separated list of view names (patterns allowed) that should be the only ones executed
* in CHUNKED mode when a max chunk size is set.
*/
private String[] chunkedModeViewNames;
public List<MediaType> getMediaTypes() {
return this.mediaTypes;
}
@@ -243,6 +256,22 @@ public class ThymeleafProperties {
this.maxChunkSize = maxChunkSize;
}
public String[] getFullModeViewNames() {
return this.fullModeViewNames;
}
public void setFullModeViewNames(String[] fullModeViewNames) {
this.fullModeViewNames = fullModeViewNames;
}
public String[] getChunkedModeViewNames() {
return this.chunkedModeViewNames;
}
public void setChunkedModeViewNames(String[] chunkedModeViewNames) {
this.chunkedModeViewNames = chunkedModeViewNames;
}
}
}

View File

@@ -112,6 +112,22 @@ public class ThymeleafReactiveAutoConfigurationTests {
assertThat(views.getViewNames()).isEqualTo(new String[] { "foo", "bar" });
}
@Test
public void overrideFullModeViewNames() throws Exception {
load(BaseConfiguration.class, "spring.thymeleaf.reactive.fullModeViewNames:foo,bar");
ThymeleafReactiveViewResolver views = this.context
.getBean(ThymeleafReactiveViewResolver.class);
assertThat(views.getFullModeViewNames()).isEqualTo(new String[] { "foo", "bar" });
}
@Test
public void overrideChunkedModeViewNames() throws Exception {
load(BaseConfiguration.class, "spring.thymeleaf.reactive.chunkedModeViewNames:foo,bar");
ThymeleafReactiveViewResolver views = this.context
.getBean(ThymeleafReactiveViewResolver.class);
assertThat(views.getChunkedModeViewNames()).isEqualTo(new String[] { "foo", "bar" });
}
@Test
public void templateLocationDoesNotExist() throws Exception {
load(BaseConfiguration.class,