SpringMVC能否处理来自HTML表单而不是POST和GET的请求?
Spring3MVC支持所有4种RESTful方法:GET、POST、PUT和DELETE。但它的视图技术在表单上支持它们吗?如果不是,那么SpringMVC能否处理来自HTML表单而不是POST和GET的请求?,spring,forms,spring-mvc,http-method,Spring,Forms,Spring Mvc,Http Method,Spring3MVC支持所有4种RESTful方法:GET、POST、PUT和DELETE。但它的视图技术在表单上支持它们吗?如果不是,那么form:form标记中的method属性的真正用途是什么 我尝试在表单上使用PUT方法: <form:form action="/myaction" method="PUT"> ... </form:form> 它声称不支持请求方法POST。但是为什么POST而不是PUT?兜帽下到底发生了什么 称为\u方法的“隐藏参数”的使
form:form
标记中的method
属性的真正用途是什么
我尝试在表单上使用PUT方法:
<form:form action="/myaction" method="PUT">
...
</form:form>
它声称不支持请求方法POST
。但是为什么POST
而不是PUT
?兜帽下到底发生了什么 称为\u方法的“隐藏参数”的使用不特定于Spring MVC的标记库,但也被其他一些客户机框架使用。春天只是在遵循惯例,就像现在这样
为了正确地使用它,您需要向web.xml
,(hiddenhttmpmethodfilter
,请参阅)添加一个过滤器,这将\u method
参数转换为HttpServletRequest
中的“真实”HTTP方法表示。这是作为一个过滤器来完成的,以强调缺少PUT
和DELETE
是一个浏览器问题,servlet API支持它
因此,如果希望在表单中使用这些方法,则需要添加该过滤器
另外,您收到“POST not supported”消息的原因是您的表单使用了POST
,并且您的处理程序被注释为PUT
,因此它不匹配。由于未定义筛选器,因此将忽略\u方法
参数
<form id="command" action="/myaction" method="post">
<input type="hidden" name="_method" value="PUT"/>
...
</form>
@RequestMapping(method=RequestMethod.PUT)