用于DELETE请求方法的Spring REST

abi*_*eez 1 html spring-mvc spring-boot

我的控制器中有以下方法

@RequestMapping(value = "processPurchase/{poid}", method = RequestMethod.DELETE)
public String processOrder(@PathVariable int poid) {
    // do some processing
    return acceptPurchaseForm;
}
Run Code Online (Sandbox Code Playgroud)

我的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="">
Run Code Online (Sandbox Code Playgroud)

有了上述我仍然得到以下错误

WARN : org.springframework.web.servlet.PageNotFound - Request method 'DELETE' not supported

任何帮助赞赏.

ara*_*ant 5

首先,我假设您在web.xml中配置了HiddenHttpMethodFilter.需要将_method带有值的delete转换为DELETE RequestMethod

其次,poid正在请求的主体中传递,但在您的控制器中,您希望它在URL本身中传递.这可能解释了为什么Spring无法映射请求.

编辑1:

要传入poidURL,您必须在生成HTML时包含在表单操作中.这取决于你的视图技术(我使用Freemarker),但你需要做这样的事情:

<form action="/MyNewApp/processPurchase/${poid}" method="post">
Run Code Online (Sandbox Code Playgroud)

假设poid被写入绑定到视图的模型.