spring boot 讀書筆記5-Spring Boot中的MVC支援
阿新 • • 發佈:2022-04-02
常用註解
@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"; }