Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SpringMVC能否处理来自HTML表单而不是POST和GET的请求?_Spring_Forms_Spring Mvc_Http Method - Fatal编程技术网

SpringMVC能否处理来自HTML表单而不是POST和GET的请求?

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方法的“隐藏参数”的使

Spring3MVC支持所有4种RESTful方法:GET、POST、PUT和DELETE。但它的视图技术在表单上支持它们吗?如果不是,那么
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)