Я пытаюсь использовать RequestMethod.PUT и RequestMethod.DELETE в контроллере Spring MVC. У моего контроллера есть @RequestMapping для PUT и DELETE, но, несмотря на это, я получаю сообщение об ошибке при попытке его использовать:
Request method 'GET'/'POST' not supported
Контроллер:
@RequestMapping(value = "/admin/user/{id}", method = RequestMethod.PUT)
public ModelAndView updateUser(HttpServletRequest request, HttpServletResponse response, @ModelAttribute("user") User user, @PathVariable long id) {
...
}
@RequestMapping(value = "/admin/user/delete/{id}", method = RequestMethod.DELETE)
public @ResponseBody ModelAndView deleteUser(HttpServletRequest request, HttpServletResponse response, @PathVariable long id) {
...
}
Я также добавил фильтры в web.xml
:
<filter>
<filter-name>httpMethodFilter</filter-name>
<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>httpMethodFilter</filter-name>
<servlet-name>springDispatcher</servlet-name>
</filter-mapping>
Весенняя форма для PUT:
<form:form id="registerForm" method="put" action="${user.id}" modelAttribute="user" class="form-horizontal">
Сгенерированный HTML:
<form id="registerForm" class="form-horizontal" action="13" method="post"><input type="hidden" name="_method" value="put"/>
Я знаю, что если браузер не поддерживает PUT/DELETE, то используется POST/GET, но почему мой метод контроллера не вызывается?
/admin/user/13
. Использование POST в этом случае сработало отлично. - person bartex9   schedule 22.01.2016pom.xml
, а не вweb.xml
? Где вы видите ошибку «Метод не поддерживается»? - person Dirk Lachowski   schedule 24.01.2016web.xml
. Я вижу эту ошибку в браузере и в журнале сервера GlassFish. - person bartex9   schedule 24.01.2016