@Test @SuppressWarnings("serial") 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 @SuppressWarnings("serial") public void controllerClassName() throws Exception { servlet = new DispatcherServlet() { @Override protected WebApplicationContext createWebApplicationContext(WebApplicationContext parent) throws BeansException { GenericWebApplicationContext wac = new GenericWebApplicationContext(); wac.registerBeanDefinition("controller", new RootBeanDefinition(ControllerClassNameController.class)); RootBeanDefinition mapping = new RootBeanDefinition(ControllerClassNameHandlerMapping.class); mapping.getPropertyValues().add("excludedPackages", null); wac.registerBeanDefinition("handlerMapping", mapping); wac.refresh(); return wac; } }; servlet.init(new MockServletConfig()); MockHttpServletRequest request = new MockHttpServletRequest("GET", "/controllerclassname/bar"); MockHttpServletResponse response = new MockHttpServletResponse(); servlet.service(request, response); assertEquals("plain-bar", response.getContentAsString()); request = new MockHttpServletRequest("GET", "/controllerclassname/bar.pdf"); response = new MockHttpServletResponse(); servlet.service(request, response); assertEquals("pdf-bar", response.getContentAsString()); request = new MockHttpServletRequest("GET", "/controllerclassname/bar.do"); response = new MockHttpServletResponse(); servlet.service(request, response); assertEquals("plain-bar", response.getContentAsString()); }
@Test public void controllerClassNamePlusMethodNameDispatchingController() throws Exception { @SuppressWarnings("serial") DispatcherServlet servlet = new DispatcherServlet() { @Override protected WebApplicationContext createWebApplicationContext(WebApplicationContext parent) { GenericWebApplicationContext wac = new GenericWebApplicationContext(); RootBeanDefinition mapping = new RootBeanDefinition(ControllerClassNameHandlerMapping.class); mapping.getPropertyValues().add("excludedPackages", null); wac.registerBeanDefinition("handlerMapping", mapping); wac.registerBeanDefinition("controller", new RootBeanDefinition(MethodNameDispatchingController.class)); wac.refresh(); return wac; } }; servlet.init(new MockServletConfig()); MockHttpServletRequest request = new MockHttpServletRequest("GET", "/methodnamedispatching/myHandle"); MockHttpServletResponse response = new MockHttpServletResponse(); servlet.service(request, response); assertEquals("myView", response.getContentAsString()); request = new MockHttpServletRequest("GET", "/methodnamedispatching/myOtherHandle.do"); response = new MockHttpServletResponse(); servlet.service(request, response); assertEquals("myOtherView", response.getContentAsString()); request = new MockHttpServletRequest("POST", "/methodnamedispatching/myLangHandle.x"); response = new MockHttpServletResponse(); servlet.service(request, response); assertEquals("myLangView", response.getContentAsString()); request = new MockHttpServletRequest("POST", "/methodnamedispatching/mySurpriseHandle.y"); response = new MockHttpServletResponse(); servlet.service(request, response); assertEquals("mySurpriseView", response.getContentAsString()); }
@Test @SuppressWarnings("serial") public void controllerClassNameNoTypeLevelAnn() throws Exception { servlet = new DispatcherServlet() { @Override protected WebApplicationContext createWebApplicationContext(WebApplicationContext parent) throws BeansException { GenericWebApplicationContext wac = new GenericWebApplicationContext(); wac.registerBeanDefinition("controller", new RootBeanDefinition(BookController.class)); RootBeanDefinition mapping = new RootBeanDefinition(ControllerClassNameHandlerMapping.class); mapping.getPropertyValues().add("excludedPackages", null); wac.registerBeanDefinition("handlerMapping", mapping); wac.refresh(); return wac; } }; servlet.init(new MockServletConfig()); MockHttpServletRequest request = new MockHttpServletRequest("GET", "/book/list"); MockHttpServletResponse response = new MockHttpServletResponse(); servlet.service(request, response); assertEquals("list", response.getContentAsString()); request = new MockHttpServletRequest("GET", "/book/show"); request.addParameter("id", "12"); response = new MockHttpServletResponse(); servlet.service(request, response); assertEquals("show-id=12", response.getContentAsString()); request = new MockHttpServletRequest("POST", "/book"); response = new MockHttpServletResponse(); servlet.service(request, response); assertEquals("create", response.getContentAsString()); }
/** * Controller class name handler mapping. * * @return the handler mapping */ @Bean public HandlerMapping controllerClassNameHandlerMapping() { return new ControllerClassNameHandlerMapping(); }