目录
- 1. rest风格基础
- 2. 开启方法
- 3. 实战练习
1. rest风格基础
我们都知道GET、POST、PUT、DELETE分别对应查、增、改、删除
虽然Postman这些工具可以直接发送GET、POST、PUT、DELETE请求。但是@RequestMapping并不支持PUT和DELETE请求操作。需要我们手动开启
2. 开启方法
PUT和DELETE还是通过method=POST进行请求,但是需要添加对应的隐藏域_method=PUT/DELETE
然后配置文件进行参数的配置:spring.mvc.hiddenmethod.filter.enabled=true
3. 实战练习
- 添加如下参数到application.properties文件。表示开启隐藏方法使用
spring.mvc.hiddenmethod.filter.enabled=true
- 编写Controller。在一个请求路径上,分别定义了GET、POST、PUT、DELETE四种method
其中GetMapping、PostMapping、PutMapping、DeleteMapping等同于@RequestMapping对应的method。如下所示:
package com.hh.springboottest.myController;
import org.springframework.web.bind.annotation.*;
@RestController
public class HelloController {
// @GetMapping("/user")
@RequestMapping(value="/user", method = RequestMethod.GET)
public String getUser() {
return "get user";
}
// @PostMapping("/user")
@RequestMapping(value="/user", method = RequestMethod.POST)
public String saveUser() {
return "save user";
}
// @PutMapping("/user")
@RequestMapping(value="/user", method = RequestMethod.PUT)
public String editUser() {
return "edit user";
}
// @DeleteMapping("/user")
@RequestMapping(value="/user", method = RequestMethod.DELETE)
public String deleteUser() {
return "delete user";
}
}
- 编写resources/static/index.html页面。PUT和DELETE还是通过method=POST进行请求,但是需要添加对应的隐藏域_method=PUT/DELETE。还支持的一个隐藏域是_method=PATCH
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>test title</title>
</head>
<body>
<form action="/user" method="get">
<input value="rest get提交" type="submit" />
</form>
<form action="/user" method="post">
<input value="rest post提交" type="submit" />
</form>
<form action="/user" method="post">
<input name="_method" type="hidden" value="PUT" />
<input value="rest put提交" type="submit" />
</form>
<form action="/user" method="post">
<input name="_method" type="hidden" value="DELETE" />
<input value="rest delete提交" type="submit" />
</form>
</body>
</html>
- 然后访问http://localhost:8080/,点击rest get提交。如下所示:
得到的结果如下: