Из официального документа Spring, Spring 3 MVC выглядит для поддержки вложенных запросов сопоставления.
http://static.springsource.org/spring/docs/3.0.0.RELEASE/spring-framework-reference/pdf/spring-framework-reference.pdf
На странице 448 они упомянули:
@Controller
@RequestMapping("/appointments")
public class AppointmentsController {
//...
@RequestMapping(value="/new", method = RequestMethod.GET)
public AppointmentForm getNewForm() {
return new AppointmentForm();
}
//...
}
(я убрал код для удобства чтения)
В таком случае они утверждали, что запрос к /appoinments/new
вызовет метод getNewForm
.
Однако он не работает с моим локальным сервером Google App Engine (хотя сервер GAE прекрасно работает с отображениями, которые не являются вложенными).
Я создаю пример контроллера, как показано ниже:
@Controller
@RequestMapping("/basic.do")
public class HelloWorldController {
@RequestMapping(value="/hello", method=RequestMethod.GET)
public ModelAndView helloWorld() {
ModelAndView mav = new ModelAndView();
mav.setViewName("basic/helloWorld");
mav.addObject("message", "Hello World From Phuong!");
return mav;
}
}
но запрос к /basic.do/hello
всегда приводит к ошибке 404.
Интересно, что там не так?
Я использую режим на основе аннотаций с *.do
запросом обработанным пружиной DispatchServlet
.