1. 程式人生 > >SpringMVC中controller入參接收部分註解簡單介紹

SpringMVC中controller入參接收部分註解簡單介紹

RequestHeader:@RequestHeader 註解,可以把Request請求header部分的值繫結到方法的引數上。

public void getAccountByOpenId(@RequestHeader("id") String id){};

api:

CookieValue:@CookieValue可以把Request header中關於cookie的值繫結到方法的引數上。

public void getAccountByOpenId(@CookieValue("JSESSIONID") String id){}; 

RequestParam:在處理方法入參處使用 @RequestParam 可以把請求引數傳遞給請求方法。

– value:引數名

– required:是否必須。預設為 true, 表示請求引數中必須包含對應的引數,若不存在,將丟擲異常

@RequestMapping("worker") public String handle(@RequestParam(value="name") String un, @RequestParam(value="age") int age) { System.out.println("a worker's request has come. name: "+un+", age: "+age); return "success"; }

 

RequestBody
:1) 該註解用於讀取Request請求的body部分資料,使用系統預設配置的HttpMessageConverter進行解析,然後把相應的資料繫結到要返回的物件上;  2) 再把HttpMessageConverter返回的物件資料繫結到 controller中方法的引數上。

@RequestMapping(value = "user") @ResponseBody // 將ajax(datas)發出的請求寫入 User 物件中 public User login(@RequestBody User user//接收body中的json字串) {    // 這樣就不會再被解析為跳轉路徑,而是直接將user物件寫入 HTTP 響應正文中     return user;     }

Responsebody:@Responsebody 註解表示該方法的返回的結果直接寫入 HTTP 響應正文(ResponseBody)中,一般在非同步獲取資料時使用,通常是在使用 @RequestMapping 後,返回值通常解析為跳轉路徑,加上 @Responsebody 後返回結果不會被解析為跳轉路徑,而是直接寫入HTTP 響應正文中。

@RequestMapping("/login")   

@ResponseBody   

public User login(User user){ return user; } //User欄位:userName pwd 那麼在前臺data:'{"userName":"xxx","pwd":"xxx"}'   

//效果等同於如下程式碼:   

@RequestMapping("/login")   

public void login(User user, HttpServletResponse response){     response.getWriter.write(JSONObject.fromObject(user).toString());   }

PathVariable:當使用@RequestMapping URI template 樣式對映時, 即 url/{id}, 這時的paramId可通過 @Pathvariable註解繫結它傳過來的值到方法的引數上。

@RequestMapping("/test/{id}")  

 public void findPet(@PathVariable String id, Model model) {       // implementation omitted    }