fixed regression: method-level patterns without type-level pattern do not need to start with a slash (SPR-6598)

This commit is contained in:
Juergen Hoeller
2010-02-17 23:26:06 +00:00
parent b54a099f49
commit e74b33242b
3 changed files with 64 additions and 8 deletions

View File

@@ -964,6 +964,32 @@ public class ServletAnnotationControllerTests {
assertEquals("mySurpriseView", response.getContentAsString());
}
@Test
public void relativeMethodPathDispatchingController() throws Exception {
initServlet(MyRelativeMethodPathDispatchingController.class);
servlet.init(new MockServletConfig());
MockHttpServletRequest request = new MockHttpServletRequest("GET", "/myApp/myHandle");
MockHttpServletResponse response = new MockHttpServletResponse();
servlet.service(request, response);
assertEquals("myView", response.getContentAsString());
request = new MockHttpServletRequest("GET", "/yourApp/myOther");
response = new MockHttpServletResponse();
servlet.service(request, response);
assertEquals("myOtherView", response.getContentAsString());
request = new MockHttpServletRequest("GET", "/hisApp/myLang");
response = new MockHttpServletResponse();
servlet.service(request, response);
assertEquals("myLangView", response.getContentAsString());
request = new MockHttpServletRequest("GET", "/herApp/surprise.do");
response = new MockHttpServletResponse();
servlet.service(request, response);
assertEquals("mySurpriseView", response.getContentAsString());
}
@Test
public void nullCommandController() throws Exception {
initServlet(MyNullCommandController.class);
@@ -1360,8 +1386,8 @@ public class ServletAnnotationControllerTests {
}
/*
* Controllers
*/
* Controllers
*/
@RequestMapping("/myPath.do")
private static class MyController extends AbstractController {
@@ -1836,6 +1862,30 @@ public class ServletAnnotationControllerTests {
}
}
@Controller
private static class MyRelativeMethodPathDispatchingController {
@RequestMapping("**/myHandle")
public void myHandle(HttpServletResponse response) throws IOException {
response.getWriter().write("myView");
}
@RequestMapping("/**/*Other")
public void myOtherHandle(HttpServletResponse response) throws IOException {
response.getWriter().write("myOtherView");
}
@RequestMapping("**/myLang")
public void myLangHandle(HttpServletResponse response) throws IOException {
response.getWriter().write("myLangView");
}
@RequestMapping("/**/surprise")
public void mySurpriseHandle(HttpServletResponse response) throws IOException {
response.getWriter().write("mySurpriseView");
}
}
@Controller
private static class MyNullCommandController {