1. 程式人生 > 其它 >Spring Boot 學習(一) 常用傳參註解的使用

Spring Boot 學習(一) 常用傳參註解的使用

@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>