web層類註解
@RestControlle
- @RestController = @Controller + @ResponseBody組成
- @Controller 將當前修飾的類注入SpringBoot IOC容器,使得從該類所在的項目跑起來的過程中,這個類就被實例化。當然也有語義化的作用,即代表該類是充當Controller的作用
- @ResponseBody 它的作用是指該類中所有的API接口返回值,不論是Map或是其他Object,它會以Json字符串的形式返回給客戶端,但返回值如果是String類型,則仍然是以String類型返回。
關於請求參數
@PathVariable
@PathVariable 映射 URL 綁定的佔位符
帶佔位符的 URL 是 Spring3.0 新增的功能,該功能在SpringMVC 向 REST 目標挺進發展過程中具有里程碑的意義
通過 @PathVariable 可以將 URL 中佔位符參數綁定到控制器處理方法的入參中:URL 中的 {xxx} 佔位符可以通過@PathVariable(“xxx“) 綁定到操作方法的入參中。
- 例子
//@PathVariable可以用來映射URL中的佔位符到目標方法的參數中
@RequestMapping("/testPathVariable/{id}")
public String testPathVariable(@PathVariable("id") Integer id)
{
System.out.println("testPathVariable:"+id);
return SUCCESS;
}
@PathVariable與RequestParam的區別
- @RequestParam 漢語意思就是: 請求參數。顧名思義 就是獲取參數的。
/Springmvc/user/page.do?pageSize=3&pageNow=2
pageSize和pageNow應該是屬於參數而不是路徑,所以應該添加@RequestParam的註解。
- @PathVariable 漢語意思是:路徑變量。顧名思義,url路徑中獲取變量。
@RequestMapping(value="/emp/{id}")
這裏的id是路徑中的變量,應使用@pathVariable
required = false
@RequestParam(value = "pageNum", required = false,defaultValue = "") Integer pageNum)
- value 是傳參;
- required :這個參數是否一定有值
- true是一定有,不寫默認爲true
- false是可以沒有,如果爲false一般設置默認值
- defaultValue,設置參數pageNum的默認值
@RequestBody
- @RequestBody主要用來接收前端傳遞給後端的json字符串中的數據的(請求體中的數據的);
- GET方式無請求體,所以使用@RequestBody接收數據時,前端不能使用GET方式提交數據,而是用POST方式進行提交。
- 在後端的同一個接收方法裏,@RequestBody與@RequestParam()可以同時使用,@RequestBody最多只能有一個,而@RequestParam()可以有多個。
注:一個請求,只有一個RequestBody;一個請求,可以有多個RequestParam。