@RequestParam注解
顧名思義:獲取參數,即是獲取傳送過來的參數;例如獲取下面鏈接的id
參數值:
//鏈接(注意鏈接格式區別) http://localhost:8090/hello?id=2
//使用@RequestParam注解獲取id public String Demo1(@RequestParam String id){ System.out.println("鏈接中請求參數的id:"+id); return null; }
此時@RequestParam
的作用就可以獲取id下來並且作為形參傳給方法體里面的id
@PathVariable注解
顧名思義:路徑變量,即是獲取鏈接路徑上的變量,例如獲取下面鏈接的id
:
//鏈接(注意比較上面一條鏈接) http://localhost:8090/hello/2
//使用@PathVariable注解獲取id @RequestMapping(value = "/getBook/{id}", method = RequestMethod.GET) public String getBook(@PathVariable Integer id) { try { system.out.println("路徑上的id:"+id); } catch (ParseException e) { e.printStackTrace(); } return null; }
此時@PathVariable
的作用是將路徑上的id獲取進來傳遞給方法體里面的形參id,但是變量名稱必須一樣,比如這里:value = "/getBook/{id}"
和@PathVariable Integer id;
兩個都要是id,如果不同則報錯;
@RequestBody注解
首先說下,@RequestBody
注解一般主要是用來處理content-type:"application/json charset=utf-8"
或者content-type:"application/xml charset=utf-8"
兩種請求數據,一般是異步請求用的比較多些,例如:
//異步請求部分代碼 $.ajax({ url:"/hello", type:"POST", data:'{"id":"123","name":"chenyc"}', content-type:"application/json charset=utf-8", success:function(data){ alert(data); } });
//@requestBody注解獲取數據代碼 @requestMapping("/hello") public String hello(@requestBody Integer id,@requestBody String name){ System.out.println("id:"+id+";"+"name:"+name); }
此時@requestBody
注解就可以獲取到請求中的各個參數然后賦值到相對應的方法形參上,另外,當有一個實體類User
包含了id
和name
的元素的話,在方法里面直接可以寫@requestBody User user
就會自動封裝好給我們使用的了,不用麻煩像這樣@requestBody Integer id,@requestBody String
name一個一個的封裝