最近一直在學習Spring Boot,今天將其中的從前臺過來的參數(shù)傳遞總結(jié)一下椿肩。
1.Get取參數(shù)
1.1@PathVariable
需要在path中取相應的參數(shù)時可以使用這個注解。
@RequestMapping("/get/user/{id}")
public String getUserId(@PathVariable(value = "id") String id) {
log.info("id: {}", id);
return "id: " + id;
}
測試結(jié)果:
get parameter from path
1.2@RequestParameter
需要通過url中的方式來傳遞參數(shù)的話我們通過@RequestParameter來進行傳遞
@RequestMapping("/get/userName")
public String getUserName(@RequestParam("name") String name) {
log.info("userName : {}", name);
return "UserName: " + name;
}
測試結(jié)果:
get parameter
2.Post 傳遞參數(shù)
2.1@RequestParameter
在post中也可以通過RequestParameter來進行參數(shù)的傳遞,注意的一點就是header中的Content-Type不能為application/json钙姊,不然會報錯澳骤。
@RequestMapping(value = "/post/requestParam/getUserName", method = RequestMethod.POST)
public String postUserName(@RequestParam(value = "name") String name) {
log.info("userName : {}", name);
return "UserName: " + name;
}
測試結(jié)果:
2.2@RequestBody
- 第一種用法是轉(zhuǎn)換成map
@RequestMapping(value = "/post/requestBody/getUserName", method = RequestMethod.POST)
public String postUserNameByRequestBody(@RequestBody Map<String, Object> map) {
String name = (String) map.get("name");
log.info("userName : {}", name);
return "UserName: " + name;
}
測試結(jié)果
- 第二種用法是轉(zhuǎn)換成實體類
@RequestMapping(value = "/post/requestBody/object/getUserName")
public String postUserNameByObject(@RequestBody User user) {
String name = user.getName();
log.info("userName : {}", name);
return "UserName: " + name;
}
git地址:https://gitee.com/xuzhangRIchard/spring-boot-parameter-transfer