From ccc7d0f53fbf1211864b3dda4fdb2e4b5263f3d6 Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Mon, 15 Feb 2010 18:27:30 +0000 Subject: [PATCH] fixed interaction with ControllerClassNameHandlerMapping (as reported by Rossen) --- .../ServletAnnotationControllerTests.java | 30 +++++++++++++++++-- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/org.springframework.web.servlet/src/test/java/org/springframework/web/servlet/mvc/annotation/ServletAnnotationControllerTests.java b/org.springframework.web.servlet/src/test/java/org/springframework/web/servlet/mvc/annotation/ServletAnnotationControllerTests.java index 62b58d14df..96378b52b4 100644 --- a/org.springframework.web.servlet/src/test/java/org/springframework/web/servlet/mvc/annotation/ServletAnnotationControllerTests.java +++ b/org.springframework.web.servlet/src/test/java/org/springframework/web/servlet/mvc/annotation/ServletAnnotationControllerTests.java @@ -137,6 +137,30 @@ public class ServletAnnotationControllerTests { assertEquals("test", response.getContentAsString()); } + @Test + public void emptyRequestMapping() throws Exception { + servlet = new DispatcherServlet() { + @Override + protected WebApplicationContext createWebApplicationContext(WebApplicationContext parent) { + GenericWebApplicationContext wac = new GenericWebApplicationContext(); + wac.registerBeanDefinition("controller", new RootBeanDefinition(ControllerWithEmptyMapping.class)); + RootBeanDefinition mbd = new RootBeanDefinition(ControllerClassNameHandlerMapping.class); + mbd.getPropertyValues().add("excludedPackages", null); + mbd.getPropertyValues().add("order", 0); + wac.registerBeanDefinition("mapping", mbd); + wac.registerBeanDefinition("mapping2", new RootBeanDefinition(DefaultAnnotationHandlerMapping.class)); + wac.refresh(); + return wac; + } + }; + servlet.init(new MockServletConfig()); + + MockHttpServletRequest request = new MockHttpServletRequest("GET", "/servletannotationcontrollertests.controllerwithemptymapping"); + MockHttpServletResponse response = new MockHttpServletResponse(); + servlet.service(request, response); + assertEquals("test", response.getContentAsString()); + } + @Test public void customAnnotationController() throws Exception { initServlet(CustomAnnotationController.class); @@ -1350,10 +1374,10 @@ public class ServletAnnotationControllerTests { } } - /** @noinspection UnusedDeclaration */ - private static class BaseController { + @Controller + private static class ControllerWithEmptyMapping { - @RequestMapping(method = RequestMethod.GET) + @RequestMapping public void myPath2(HttpServletResponse response) throws IOException { response.getWriter().write("test"); }