spring boot 读书笔记5-Spring Boot中的MVC支持
常用注解
@RestController
返回内容json格式,适合前后端分离,如果不是前后端分离需要返回内容时,选用@Controller,比如使用Thymeleaf模板
@RequestMapping
是一个用来处理请求地址映射的注解,可用于类和方法上,常用3个数据
- value 属性:指定请求的实际地址,value 可以省略不写
- method 属性:指定请求的类型,主要有 GET、PUT、POST、DELETE,默认为 GET
- produces属性:指定返回内容类型,如 produces = “application/json; charset=UTF-8”
@RestController @RequestMapping(value = "/test", produces = "application/json; charset=UTF-8") public class TestController { @RequestMapping(value = "/get", method = RequestMethod.GET) public String testGet() { return "success"; } }
也可以使用 @GetMapping("/get"),@PostMapping代替
获取 url 参数
@PathVariable
@GetMapping("/user/{id}") public String testPathVariable(@PathVariable Integer id) { System.out.println("获取到的id为:" + id); return "success"; }
@RequestParam
获取请求参数
@RequestMapping("/user") public String testRequestParam(@RequestParam(value = "idd", required = false) Integer id) { System.out.println("获取到的id为:" + id); return "success"; }
常用属性
- required 属性:true 表示该参数必须要传,否则就会报 404 错误,false 表示可有可无。
- defaultValue 属性:默认值,表示如果请求中没有同名参数时的默认值。
如果表单太多,可以创建表单所需实体类
public class User { private String userName; private String password; public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
@RestController @RequestMapping("/test") public class MyUser { private User user; @RequestMapping("/userName") public String getUserName(User user){ return user.getUserName(); } }
访问http://127.0.0.1:8080/test/userName?userName=test 实体中的属性名和表单中的参数名一致即可
@RequestBody
注解用于接收前端传来的实体,接收参数也是对应的实体,josn数据提交
@PostMapping("/user") public String testRequestBody(@RequestBody User user) { System.out.println("获取到的username为:" + user.getUsername()); System.out.println("获取到的password为:" + user.getPassword()); return "success"; }