В Spring 3 MVC у меня есть контроллер, который я вызываю RolesController, и у него есть такие методы, как displayRoles () для отображения списка ролей, saveRole () и deleteRole ().
В настоящее время я успешно использую аннотации @RequestMapping для маршрутизации / настройки / роли / для вызова метода displayRoles (), / settings / role / save / для вызова метода saveRole () и т. Д.
Мой код ниже, и он работает.
@Controller
public class RolesController {
@Transactional
@RequestMapping(value = {"settings/roles/save"}, method = {RequestMethod.POST})
public ModelAndView saveRole(details removed){
//details removed
}
@RequestMapping(value = {"settings/roles/delete"}, method = {RequestMethod.POST})
public ModelAndView deleteRole(details removed){
//details removed
}
@RequestMapping(value = {"settings/roles"}, method = RequestMethod.GET)
public ModelAndView displayRoles(details removed){
//details removed
}
}
Есть 2 проблемы, которые мне не удалось исправить:
- Мне не удалось сопоставить родительский каталог
/settings/
для вызова метода displayRoles (). Если я изменил отображение метода displayRoles на @RequestMapping(value = {"settings","settings/","settings/roles"}, method = RequestMethod.GET)
, а затем перестроил и перешел на / Настройки в URL, я получаю ошибку 404. Почему я не могу сопоставить родительскую папку «настройки»?
- Завершающие косые черты в URL, по-видимому, необходимы. Например, переход к настройкам / ролям / работам, но посещение настроек / ролей приводит к ошибке 404 Страница не найдена.
Что я делаю не так? Спасибо! -Ryan
<Ч />
Постскриптум Вот дополнительная информация ... если это поможет:
В моем файле applicationContext-mvc.xml у меня есть (среди прочего код):
<!-- Maps request paths to @Controller classes; e.g. a path of /login looks for a controller named LoginController -->
<bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping">
<property name="order" value="1" />
</bean>
<!-- If no @Controller match, look for @RequestMapping match-->
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
<property name="order" value="2" />
<property name="defaultHandler">
<!-- If no @RequestMapping match, map path to a view to render; e.g. the "/intro" path would map to the view named "intro" -->
<bean class="org.springframework.web.servlet.mvc.UrlFilenameViewController" />
</property>
</bean>