spring:
hiddenmethod:
filter:
enabled: true
SpringBoot默认开启该功能,因为目前开发大多使用异步请求的方式,想要使用表单提交的方式提交PUT ,DELETE 等方法需要在全局配置文件application.yml 中配置上面的信息
在表单中需要以下配置:
<form method="post">
<input type="hidden" name="_method" value="PUT" >
</form>
1,表单提交方法必须为post
2,有一input组件的name为_method 和 value 为想要发送的REST风格的请求
。。。一般该input设置为隐藏
原理
springboot 中的autoconfigure 中的WebMvcAutoConfiguration类中会加载HiddenHttpMethodFilter过滤器,该过滤器在每一次请求的时候获取 请求参数为_method的值
转换的大写之后,将获取到的如PUT方法传给一个包装的request,该包装的request请求对象的其他参数没改,唯一改了请求方式method,过滤器doFilter()放行的时候将该包装的request对象传入,以至于之后获取request中的请求方法为上面更改的