Метод запроса «REST» Spring «DELETE», «POST», «PUT» не поддерживается [дублировать]

У меня есть следующий метод в моем контроллере

@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

Любая помощь оценена.

1
задан r007 1 December 2015 в 19:07
поделиться

1 ответ

Прежде всего, я предполагаю, что у вас есть HiddenHttpMethodFilter , настроенный в вашем web.xml. Требуется преобразовать ваш _method со значением delete в DELETE RequestMethod

. Во-вторых, poid передается в теле запроса, но в вашем контроллере вы ожидаете его передачи в самом URL-адресе. Это может объяснить, почему Spring не может сопоставить запрос.

РЕДАКТИРОВАТЬ 1:

Чтобы передать poid в URL-адресе, вам нужно будет включить в свою форму действие, когда ваш HTML-код генерироваться. Это зависит от вашей технологии просмотра (я использую Freemarker), но вам нужно было бы сделать что-то вроде этого:

<form action="/MyNewApp/processPurchase/${poid}" method="post">

Предполагая, что poid записывается в модель, привязанную к вашему представлению.

5
ответ дан rajadilipkolli 28 August 2018 в 08:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: