我的控制器中有以下方法
@RequestMapping(value = "processPurchase/{poid}", method = RequestMethod.DELETE)
public String processOrder(@PathVariable int poid) {
// do some processing
return acceptPurchaseForm;
}
我的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
任何帮助表示感谢。
答案 0 :(得分:5)
首先,我假设您在web.xml中配置了HiddenHttpMethodFilter。需要将_method
的值删除转换为DELETE RequestMethod
其次,poid
正在请求正文中传递,但在您的控制器中,您希望它在URL本身中传递。这可能解释了为什么Spring无法映射请求。
编辑1:
要在网址中传递poid
,您必须在生成HTML时在表单中添加操作。这取决于你的视图技术(我使用Freemarker),但你需要做这样的事情:
<form action="/MyNewApp/processPurchase/${poid}" method="post">
假设poid被写入绑定到视图的模型。