Fix context-relative default value in XML parsing
This commit fixes the default value for the contextRelative attribute of a RedirectView, when this view is registered via a RedirectViewController in XML. The value is set to true. Note that the default value for this is correctly documented in spring-mvc-4.1.xsd. Also, the documentation and implementation for its javadoc counterpart also enforces true as a default value. Issue: SPR-12607
This commit is contained in:
parent
47fdac9214
commit
0c8d07fcff
|
@ -140,6 +140,8 @@ class ViewControllerBeanDefinitionParser implements BeanDefinitionParser {
|
||||||
}
|
}
|
||||||
if (element.hasAttribute("context-relative")) {
|
if (element.hasAttribute("context-relative")) {
|
||||||
redirectView.getPropertyValues().add("contextRelative", element.getAttribute("context-relative"));
|
redirectView.getPropertyValues().add("contextRelative", element.getAttribute("context-relative"));
|
||||||
|
} else {
|
||||||
|
redirectView.getPropertyValues().add("contextRelative", true);
|
||||||
}
|
}
|
||||||
if (element.hasAttribute("keep-query-params")) {
|
if (element.hasAttribute("keep-query-params")) {
|
||||||
redirectView.getPropertyValues().add("propagateQueryParams", element.getAttribute("keep-query-params"));
|
redirectView.getPropertyValues().add("propagateQueryParams", element.getAttribute("keep-query-params"));
|
||||||
|
|
|
@ -95,6 +95,7 @@ import org.springframework.web.servlet.handler.UserRoleAuthorizationInterceptor;
|
||||||
import org.springframework.web.servlet.handler.WebRequestHandlerInterceptorAdapter;
|
import org.springframework.web.servlet.handler.WebRequestHandlerInterceptorAdapter;
|
||||||
import org.springframework.web.servlet.i18n.LocaleChangeInterceptor;
|
import org.springframework.web.servlet.i18n.LocaleChangeInterceptor;
|
||||||
import org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter;
|
import org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter;
|
||||||
|
import org.springframework.web.servlet.mvc.ParameterizableViewController;
|
||||||
import org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter;
|
import org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter;
|
||||||
import org.springframework.web.servlet.mvc.method.annotation.MvcUriComponentsBuilder;
|
import org.springframework.web.servlet.mvc.method.annotation.MvcUriComponentsBuilder;
|
||||||
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter;
|
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter;
|
||||||
|
@ -648,9 +649,17 @@ public class MvcNamespaceTests {
|
||||||
|
|
||||||
SimpleUrlHandlerMapping hm = this.appContext.getBean(SimpleUrlHandlerMapping.class);
|
SimpleUrlHandlerMapping hm = this.appContext.getBean(SimpleUrlHandlerMapping.class);
|
||||||
assertNotNull(hm);
|
assertNotNull(hm);
|
||||||
assertNotNull(hm.getUrlMap().get("/path"));
|
ParameterizableViewController viewController = (ParameterizableViewController) hm.getUrlMap().get("/path");
|
||||||
assertNotNull(hm.getUrlMap().get("/old"));
|
assertNotNull(viewController);
|
||||||
assertNotNull(hm.getUrlMap().get("/bad"));
|
assertEquals("home", viewController.getViewName());
|
||||||
|
|
||||||
|
ParameterizableViewController redirectViewController = (ParameterizableViewController) hm.getUrlMap().get("/old");
|
||||||
|
assertNotNull(redirectViewController);
|
||||||
|
assertThat(redirectViewController.getView(), Matchers.instanceOf(RedirectView.class));
|
||||||
|
|
||||||
|
ParameterizableViewController statusViewController = (ParameterizableViewController) hm.getUrlMap().get("/bad");
|
||||||
|
assertNotNull(statusViewController);
|
||||||
|
assertEquals(404, statusViewController.getStatusCode().value());
|
||||||
|
|
||||||
BeanNameUrlHandlerMapping beanNameMapping = this.appContext.getBean(BeanNameUrlHandlerMapping.class);
|
BeanNameUrlHandlerMapping beanNameMapping = this.appContext.getBean(BeanNameUrlHandlerMapping.class);
|
||||||
assertNotNull(beanNameMapping);
|
assertNotNull(beanNameMapping);
|
||||||
|
|
Loading…
Reference in New Issue