spring boot中put/delete接口需后端定义+前端适配:后端用@putmapping/@deletemapping注解;前端ajax可直发,html表单需启用hiddenhttpmethodfilter并加_method隐藏字段。

Spring Boot 中使用 PUT 和 DELETE 接口,主要分两部分:后端接口定义 + 前端请求方式。关键在于——浏览器原生表单不支持 PUT/DELETE 方法,所以得靠配置或工具来“绕过”这个限制。
后端怎么写 PUT/DELETE 接口
直接用组合注解即可,语义清晰、无需额外配置:
- @PutMapping("/users/{id}"):处理全量更新,比如替换整个用户信息
- @DeleteMapping("/users/{id}"):处理资源删除,如根据 ID 删除用户
- 路径参数用 @PathVariable 获取,请求体数据(如 JSON)用 @RequestBody 接收
前端怎么发 PUT/DELETE 请求
取决于你用什么方式调用:
- AJAX / Fetch / Axios:可直接发原生 PUT/DELETE 请求,无需任何 Spring 配置
-
HTML 表单:只能发 GET/POST,必须启用
HiddenHttpMethodFilter才能“伪装”成 PUT/DELETE
启用表单支持 PUT/DELETE 的关键配置
在 application.properties 中加一行:
spring.mvc.hiddenmethod.filter.enabled=true
然后在表单里这样写:
- 方法设为
post,再加一个隐藏字段<input name="_method" value="put"> - 或
value="delete",值不区分大小写 - 注意:该机制只对 POST 请求生效,且必须含
_method字段
常见误区提醒
不是所有场景都需要开启 filter:
- 前后端分离项目(Vue/React + Spring Boot),前端用 JS 发请求 → 不用开 filter
- 纯 Thymeleaf 或 JSP 页面带表单提交 → 必须开 filter
- Spring Boot 2.2+ 默认关闭该 filter,不配就无效











