注解使用:
@RequestParam("前端的名稱") 加了如果參數沒傳就報參數錯誤。沒加就都可以訪問。
@RequestMapping("/list")
public String test(@RequestParam Long parentId) {
}
@RequestMapping("/list")
public String test( Long parentId) {
}
第一種必須帶有參數,也就是說你直接輸入localhost:8080/list 會報錯 不會執行方法 只能輸入localhost:8080/list?parentId=? 才能執行相應的方法
第二種 可帶參數也可不帶參數 就是說你輸入 localhost:8080/list 以及 localhost:8080/list?parentId=? 方法都能執行
當然你也可以設置 @RequestParam 里面的required為false(默認為true 代表必須帶參數) 這樣就跟第二種是一樣的了
@RequestMapping("/list")
public String test(@RequestParam(value="id") Long parentId) {
..
}
這樣會用id 代替parentId 也就是說你地址里面傳入的參數名稱為id localhost:8080/list?id=? 這種
----因此綜上所述,如果為get請求時,后台接收參數的注解應該為RequestParam,如果為post請求時,則后台接收參數的注解就是為RequestBody。
----另外,還有一種應用場景,接口規范為resultful風格時,舉個例子:如果要獲取某個id下此條問題答案的查詢次數的話,則后台就需要動態獲取參數,其注解為@PathVariable,並且requestMapping中的value應為value="/{id}/queryNum",
@GetMapping是一個組合注解,是@RequestMapping(method = RequestMethod.GET)的縮寫。
@PostMapping是一個組合注解,是@RequestMapping(method = RequestMethod.POST)的縮寫
