SpringBoot处理表单PUT、DELETE请求
SpringMVC 传统的表单提交
由于浏览器只支持发送get和post方式的请求,那么该如何发送put和delete请求呢?
SpringMVC 提供了 HiddenHttpMethodFilter 帮助我们将 POST 请求转换为 DELETE 或 PUT 请求
HiddenHttpMethodFilter 处理put和delete请求的条件:
a>当前请求的请求方式必须为post
b>当前请求必须传输请求参数_method
<form method="post" action="http://localhost:8080/animal/add">
<input type="hidden" value="put" name="_method"/>
id:<input type="text" name="id"/><br>
名字:<input type="text" name="name"/><br>
<input type="submit" value="提交"/>
</form>
满足以上条件,HiddenHttpMethodFilter 过滤器就会将当前请求的请求方式转换为请求参数_method的值,因此请求参数_method的值才是最终的请求方式
在web.xml中注册HiddenHttpMethodFilter
<filter>
<filter-name>HiddenHttpMethodFilter</filter-name>
<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>HiddenHttpMethodFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
SpringBoot 对表单请求方式的支持
spring:
mvc:
hiddenmethod:
filter:
enabled: true
SpringMVC PUT , DELETE , PATCH 请求方式,提交的表单数据无法接收
- 配置一个 FormContentFilter 过滤器
<!--配置表单接收参数的支持PUT DELETE,PATCH-->
<filter>
<filter-name>formContentFilter</filter-name>
<filter-class>org.springframework.web.filter.FormContentFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>formContentFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
SpringBoot 解决 PUT, DELETE 表单参数
spring:
formcontent:
filter:
enabled: true #启用 FormContentFilter 过滤器, 默认是 启用的, 可以不用配置