Spring boot的put请求 (如何实现RestFul Api风格)
在这里如果请求设置不当,往往会报一个405的错误,就是前端请求方式与后端应答方式不匹配,简而言之前端可能要的是put请求,你后端给的应答却是post请求!!!
Put请求
Restful风格,修改发送put请求
修改时,页面发送put请求
Form表单页面
只支持get、post方式,那么我们如何在后端用Put Delete等请求来接受呢?
实现方式
1、SpringMVC中配置HiddenHttpMethodFilter
SpringBoot自动配置好的
2、页面创建一个post表单
3、创建一个input项,name=”_method”
Value,值就是指定的请求方式
WebMvcAutoConfiguration
自动配置
hiddenHttpMethodFilter
自动配置好了Filter,直接使用即可
HiddenHttpMethodFilter
Filter将请求,转换为指定的方式
name=”_method”
在Filter中指定
doFilterInternal
过滤器,获取请求的value值
根据Value值,使用新的请求方式
添加input元素
Value,提交方式设置为put
注意,不区分大小写
在表单中使用即可
<input type="hidden" name="_method" value="put"/>
会执行form表单的action请求
提交方式,使用配置的put方式提交
注:SpringBoot在升级的更高版本之上,如2.2以上的版本时,可能SpringBoot不会自动帮我们配置好,那么就需要我们手动设置,不然会报错!
只需要在配置文件中添加该行配置即可
spring.mvc.hiddenmethod.filter.enabled=true