У меня есть следующий метод в моем контроллере
@RequestMapping(value = "processPurchase/{poid}", method = RequestMethod.DELETE)
public String processOrder(@PathVariable int poid) {
// do some processing
return acceptPurchaseForm;
}
My HTML
<form id="purchase-list-form" class="form-horizontal" action="/MyNewApp/processPurchase/" method="post">
<input type="hidden" name="_method" value="delete">
<input type="hidden" name="poid" value="">
С приведенным выше я все еще получаю следующую ошибку
WARN : org.springframework.web.servlet.PageNotFound - Request method 'DELETE' not supported
Любая помощь оценена.
Прежде всего, я предполагаю, что у вас есть HiddenHttpMethodFilter , настроенный в вашем web.xml. Требуется преобразовать ваш _method
со значением delete в DELETE RequestMethod
. Во-вторых, poid
передается в теле запроса, но в вашем контроллере вы ожидаете его передачи в самом URL-адресе. Это может объяснить, почему Spring не может сопоставить запрос.
РЕДАКТИРОВАТЬ 1:
Чтобы передать poid
в URL-адресе, вам нужно будет включить в свою форму действие, когда ваш HTML-код генерироваться. Это зависит от вашей технологии просмотра (я использую Freemarker), но вам нужно было бы сделать что-то вроде этого:
<form action="/MyNewApp/processPurchase/${poid}" method="post">
Предполагая, что poid записывается в модель, привязанную к вашему представлению.