Pet*_*ete 2 java servlets http spring-mvc
我有一个Spring MVC网络应用程序.在其中一个带有按钮的表单,该按钮应该从另一个资源中删除资源:
<td>
<form action="/product-bases/${productBase.id}/positions/${position.id}" method="DELETE">
<input type="submit" value="delete" />
</form>
</td>
Run Code Online (Sandbox Code Playgroud)
我的控制器:
@Controller
@RequestMapping(value = "/product-bases/{id}/positions")
public class ProductBasePositionController {
@RequestMapping(value = "/{positionId}", method = RequestMethod.DELETE)
public ModelAndView delete(@PathVariable Integer productBaseId, @PathVariable Integer positionId) {
Run Code Online (Sandbox Code Playgroud)
所以理论上服务器应该路由到控制器.但唉它没有,因此这个帖子;)
我越来越
HTTP Status 405 - Request method 'GET' not supported
type Status report
message Request method 'GET' not supported
description The specified HTTP method is not allowed for the requested resource (Request method 'GET' not supported).
Apache Tomcat/7.0.19
Run Code Online (Sandbox Code Playgroud)
显然我还没有定义get// position/id,但我为什么要这样做,我想暂时删除..
(我也试图在我的spring-test-mvc框架上运行这个模拟servlet而没有任何tomcat实现,它给了我400个错误的请求..)
那我在这里错过了什么?
哦,只是为了削减一些角落:post和get将适用于其他资源,所以其余的设置都很好.
启动服务器甚至告诉我:
RequestMappingHandlerMapping [INFO] Mapped "{[/product-bases/{id}/positions/{positionId}],methods=[DELETE],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public org.springframework.web.servlet.ModelAndView our.view.controller.ProductBasePositionController.delete(java.lang.Integer,java.lang.Integer)
Run Code Online (Sandbox Code Playgroud)
有人像我一样困惑吗?如果不那么,请赐教!
表格可以通过GET或POST仅提交(也可能PUT,但我怀疑是广泛实施的),因为表单提交需要一种将数据传输到服务器的方法.
该DELETE方法没有请求正文,因此不支持在表单操作中指定它.
| 归档时间: |
|
| 查看次数: |
13972 次 |
| 最近记录: |