Spring MVC可以处理来自POST和GET以外的HTML表单的请求吗?
Spring 3 MVC支持所有4种RESTful方法:GET,POST,PUT和DELETE。但它的视图技术是否在表格上支持它们?如果没有,
form:form
标签中method
属性的实际用途是什么?
我尝试在表单上使用PUT方法:
<form:form action="/myaction" method="PUT">
...
</form:form>
生成的HTML是:
<form id="command" action="/myaction" method="post">
<input type="hidden" name="_method" value="PUT"/>
...
</form>
很明显,因为除了GET和POST之外,大多数浏览器都不支持其他方法。但Spring可以使用额外的input
来处理它,名称为_method
,值为METHOD_NAME
。可以?
当我将指定的表单发送到带注释的控制器方法时
@RequestMapping(method=RequestMethod.PUT)
它声称,不支持请求方法POST
。但为什么POST
而不是PUT
?在引擎盖下实际发生了什么?
没有找到相关结果
已邀请:
1 个回复
讼乐
中添加一个过滤器,(
,参见javadoc),它将
参数转换为
中的“真实”HTTP方法表示。这是作为过滤器来完成的,以强调缺少
和
是一个浏览器问题 - servlet API支持它就好了。 因此,如果要在表单中使用这些方法,则需要添加该过滤器。 附:您收到“POST not supported”消息的原因是您的表单使用
,并且您的处理程序使用
进行注释,因此它不匹配。由于您没有定义过滤器,因此忽略
参数。