diff --git a/spring-test/src/test/java/org/springframework/test/web/servlet/samples/standalone/ViewResolutionTests.java b/spring-test/src/test/java/org/springframework/test/web/servlet/samples/standalone/ViewResolutionTests.java index 0ac2b07c7b..b286f626c1 100644 --- a/spring-test/src/test/java/org/springframework/test/web/servlet/samples/standalone/ViewResolutionTests.java +++ b/spring-test/src/test/java/org/springframework/test/web/servlet/samples/standalone/ViewResolutionTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2014 the original author or authors. + * Copyright 2002-2015 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. @@ -53,10 +53,7 @@ public class ViewResolutionTests { @Test public void testJspOnly() throws Exception { - - InternalResourceViewResolver viewResolver = new InternalResourceViewResolver(); - viewResolver.setPrefix("/WEB-INF/"); - viewResolver.setSuffix(".jsp"); + InternalResourceViewResolver viewResolver = new InternalResourceViewResolver("/WEB-INF/", ".jsp"); standaloneSetup(new PersonController()).setViewResolvers(viewResolver).build() .perform(get("/person/Corea")) @@ -68,7 +65,6 @@ public class ViewResolutionTests { @Test public void testJsonOnly() throws Exception { - standaloneSetup(new PersonController()).setSingleView(new MappingJackson2JsonView()).build() .perform(get("/person/Corea")) .andExpect(status().isOk()) @@ -78,7 +74,6 @@ public class ViewResolutionTests { @Test public void testXmlOnly() throws Exception { - Jaxb2Marshaller marshaller = new Jaxb2Marshaller(); marshaller.setClassesToBeBound(Person.class); @@ -91,7 +86,6 @@ public class ViewResolutionTests { @Test public void testContentNegotiation() throws Exception { - Jaxb2Marshaller marshaller = new Jaxb2Marshaller(); marshaller.setClassesToBeBound(Person.class); @@ -131,7 +125,6 @@ public class ViewResolutionTests { @Test public void defaultViewResolver() throws Exception { - standaloneSetup(new PersonController()).build() .perform(get("/person/Corea")) .andExpect(model().attribute("person", hasProperty("name", equalTo("Corea")))) diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/InternalResourceViewResolver.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/InternalResourceViewResolver.java index 679e8a9579..13a7085053 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/InternalResourceViewResolver.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/InternalResourceViewResolver.java @@ -66,6 +66,19 @@ public class InternalResourceViewResolver extends UrlBasedViewResolver { setViewClass(viewClass); } + /** + * A convenience constructor that allows for specifying {@link #setPrefix prefix} + * and {@link #setSuffix suffix} as constructor arguments. + * @param prefix the prefix that gets prepended to view names when building a URL + * @param suffix the suffix that gets appended to view names when building a URL + * @since 4.3 + */ + public InternalResourceViewResolver(String prefix, String suffix) { + this(); + setPrefix(prefix); + setSuffix(suffix); + } + /** * This resolver requires {@link InternalResourceView}. diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/freemarker/FreeMarkerViewResolver.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/freemarker/FreeMarkerViewResolver.java index c774ccf086..3768eb8afa 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/freemarker/FreeMarkerViewResolver.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/freemarker/FreeMarkerViewResolver.java @@ -40,10 +40,28 @@ import org.springframework.web.servlet.view.AbstractTemplateViewResolver; */ public class FreeMarkerViewResolver extends AbstractTemplateViewResolver { + /** + * Sets the default {@link #setViewClass view class} to {@link #requiredViewClass}: + * by default {@link FreeMarkerView}. + */ public FreeMarkerViewResolver() { setViewClass(requiredViewClass()); } + /** + * A convenience constructor that allows for specifying {@link #setPrefix prefix} + * and {@link #setSuffix suffix} as constructor arguments. + * @param prefix the prefix that gets prepended to view names when building a URL + * @param suffix the suffix that gets appended to view names when building a URL + * @since 4.3 + */ + public FreeMarkerViewResolver(String prefix, String suffix) { + this(); + setPrefix(prefix); + setSuffix(suffix); + } + + /** * Requires {@link FreeMarkerView}. */ diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/groovy/GroovyMarkupViewResolver.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/groovy/GroovyMarkupViewResolver.java index 79c5f87a16..197abdf224 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/groovy/GroovyMarkupViewResolver.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/groovy/GroovyMarkupViewResolver.java @@ -38,10 +38,28 @@ import org.springframework.web.servlet.view.AbstractTemplateViewResolver; */ public class GroovyMarkupViewResolver extends AbstractTemplateViewResolver { + /** + * Sets the default {@link #setViewClass view class} to {@link #requiredViewClass}: + * by default {@link GroovyMarkupView}. + */ public GroovyMarkupViewResolver() { setViewClass(requiredViewClass()); } + /** + * A convenience constructor that allows for specifying {@link #setPrefix prefix} + * and {@link #setSuffix suffix} as constructor arguments. + * @param prefix the prefix that gets prepended to view names when building a URL + * @param suffix the suffix that gets appended to view names when building a URL + * @since 4.3 + */ + public GroovyMarkupViewResolver(String prefix, String suffix) { + this(); + setPrefix(prefix); + setSuffix(suffix); + } + + @Override protected Class requiredViewClass() { return GroovyMarkupView.class; diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/script/ScriptTemplateViewResolver.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/script/ScriptTemplateViewResolver.java index 54f61470ab..168ce304c2 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/script/ScriptTemplateViewResolver.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/script/ScriptTemplateViewResolver.java @@ -35,10 +35,28 @@ import org.springframework.web.servlet.view.UrlBasedViewResolver; */ public class ScriptTemplateViewResolver extends UrlBasedViewResolver { + /** + * Sets the default {@link #setViewClass view class} to {@link #requiredViewClass}: + * by default {@link ScriptTemplateView}. + */ public ScriptTemplateViewResolver() { setViewClass(requiredViewClass()); } + /** + * A convenience constructor that allows for specifying {@link #setPrefix prefix} + * and {@link #setSuffix suffix} as constructor arguments. + * @param prefix the prefix that gets prepended to view names when building a URL + * @param suffix the suffix that gets appended to view names when building a URL + * @since 4.3 + */ + public ScriptTemplateViewResolver(String prefix, String suffix) { + this(); + setPrefix(prefix); + setSuffix(suffix); + } + + @Override protected Class requiredViewClass() { return ScriptTemplateView.class; diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/config/annotation/ViewResolutionIntegrationTests.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/config/annotation/ViewResolutionIntegrationTests.java index 5bb2493f5d..2bfd1fd3fb 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/config/annotation/ViewResolutionIntegrationTests.java +++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/config/annotation/ViewResolutionIntegrationTests.java @@ -257,9 +257,7 @@ public class ViewResolutionIntegrationTests { @Bean public FreeMarkerViewResolver freeMarkerViewResolver() { - FreeMarkerViewResolver viewResolver = new FreeMarkerViewResolver(); - viewResolver.setSuffix(".ftl"); - return viewResolver; + return new FreeMarkerViewResolver("", ".ftl"); } @Bean diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/config/annotation/ViewResolverRegistryTests.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/config/annotation/ViewResolverRegistryTests.java index fdbf88740f..33eca3c0ce 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/config/annotation/ViewResolverRegistryTests.java +++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/config/annotation/ViewResolverRegistryTests.java @@ -99,9 +99,7 @@ public class ViewResolverRegistryTests { @Test public void customViewResolver() { - InternalResourceViewResolver viewResolver = new InternalResourceViewResolver(); - viewResolver.setPrefix("/"); - viewResolver.setSuffix(".jsp"); + InternalResourceViewResolver viewResolver = new InternalResourceViewResolver("/", ".jsp"); this.registry.viewResolver(viewResolver); assertSame(viewResolver, this.registry.getViewResolvers().get(0)); } diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/view/freemarker/FreeMarkerViewTests.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/view/freemarker/FreeMarkerViewTests.java index fe3c4fb3e9..44d3faff6d 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/view/freemarker/FreeMarkerViewTests.java +++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/view/freemarker/FreeMarkerViewTests.java @@ -156,9 +156,7 @@ public class FreeMarkerViewTests { wac.getBeanFactory().registerSingleton("configurer", configurer); wac.refresh(); - FreeMarkerViewResolver vr = new FreeMarkerViewResolver(); - vr.setPrefix("prefix_"); - vr.setSuffix("_suffix"); + FreeMarkerViewResolver vr = new FreeMarkerViewResolver("prefix_", "_suffix"); vr.setApplicationContext(wac); View view = vr.resolveViewName("test", Locale.CANADA);