springMVC中@RequestParam注解用在Controller層獲解析、提取參數,當然你也可以用request.getParameter("name")來獲取參數,而@RequestParam注解接收參數有幾種不同的寫法。
1、test(String name)
像正常的方法接收參數,不帶@RequestParam注解。這種寫法,如果沒有name參數不會報錯。
2、test(@RequestParam String name)
帶@RequestParam注解。這種寫法,name參數為必須,如果沒有會報錯。
3、test(@RequestParam("userName") String name)
帶@RequestParam注解。這種寫法,可以對接收的參數進行重命名。即接收到userName改成name。
4、test(@RequestParam(value="userName",request=false) String name)
帶@RequestParam注解。這種寫法,通過設置request參數來設定參數是否為必須,true為必須,false為非必須。
PS:@RequestBody注解也可以用來獲取參數。與@RequestParam不同點在於:
@RequestParam注解通常處理content-type為默認的application/x-www-form-urlcoded的請求。
@RequestBody注解用來處理content-type為application/json或者是application/xml等。
比如:一個json格式的請求參數,且沒有參數名,就可以用下面的方式獲取。
1、test(@RequestBody String json)
