Spring Boot 學習(一) 常用傳參註解的使用
阿新 • • 發佈:2021-06-28
@PathVariable() 裡面的引數可以是mapping裡url的值,也可以是Map,Map必須是String Map(String,String),可以通過Map提取所有的路徑變數
@GetMapping("/car/{id}/owner/{username}") public Map<String,Object> getCar(@PathVariable("id") Integer id, @PathVariable("username") String name, @PathVariable Map<String,String> pv) { Map<String,Object> map = new HashMap<>(); map.put("id",id); //返回的是鍵值 map.put("name",name); map.put("pv",pv); return map; }
路徑上的引數可以被動態替換
@RequestHeader 獲取請求頭資訊
也可以傳Map(String,String)將所有請求引數的值存放進Map裡,帶Key只拿一個,不帶拿所有
RequestHeader("User-Agent") String userAgent,//帶了Key只獲取一個引數
RequestHeader Map<String,String> header //沒有帶Key獲取所有的引數
@GetMapping("/car/{id}/owner/{username}") public Map<String,Object> getCar(@PathVariable("id") Integer id, @PathVariable("username") String name, @PathVariable Map<String,String> pv, @RequestHeader("User-Agent") String userAgent, //傳頭資訊 @RequestHeader Map<String,String> header) { //傳所有的頭資訊 Map<String,Object> map = new HashMap<>(); map.put("id",id); map.put("name",name); map.put("pv",pv); map.put("userAgent",userAgent); map.put("header",header); return map; }
@RequestParam 獲取請求引數
@GetMapping("/car/{id}/owner/{username}") public Map<String,Object> getCar( @RequestParam Integer age, @RequestParam("inters") List<String> inters, //因為傳的參有2個inters,所以這裡用列表來儲存 @RequestParam Map<String ,String > parms) { //獲取所有的傳遞引數,但是這裡會少一個引數,Map<String,String>沒法儲存為一個列表 Map<String,Object> map = new HashMap<>(); map.put("age",age); map.put("inters",inters); map.put("parms",parms); return map; }
補充
這裡的Map 會缺少一個引數,改用MultiValueMap
@RequestParam MultiValueMap<String ,String > parms,
@CookieValue 來獲取cookie的值 注意這裡的 _xsrf 要通過觀察瀏覽器抓包,檢視cookie的值
@CookieValue("_xsrf") String _xsrf)
map.put("_xsrf",_xsrf); 注意Map的put方法裡的引數一定是key value
@CookieValue("_xsrf") Cookie cookie) 獲取cookie物件,
System.out.println(cookie.getName());//來獲取cookie的名字
System.out.println(cookie.getValue());//來獲取cookie的值
System.out.println(cookie.getName()+"============>"+cookie.getValue());
@RequestBody //獲取請求體
注意:只有post請求才有請求體,例如表單提交
@PostMapping("/user/message") public Map<String,Object> postMethod(@RequestBody String content) { Map<String,Object> map = new HashMap<>(); map.put("content",content); return map; }
<form action="/user/message" method="post"> UserName:<input name="suer" type="text"> 注意這裡一定要加上name,因為獲取RequestBody返回的值是Map PassWord:<input name="pass" type="password"> <input type="submit" value="Submit"> </form>