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

原文地址:https://www.cnblogs.com/yuqiliu/p/13092566.html