默認支持的類型
在controller的方法的形參中直接定義上面這些類型的參數,springmvc會自動綁定。
HttpServletRequest對象
HttpServletResponse對象
HttpSession對象
Model/ModelMap對象
簡單類型的參數綁定
直接在controller中定義一個變量,但是此種傳輸方式有一個限制就是參數名和請求中的參數名必須保持一致,否則是接收不到數據的。
public String regist(Integer id){}
form-data
通過form-data的方式發送請求,參數是通過key-value的形式,在controller中通過@requestparam注解的 方式就可以取到值:
@RequestParam注解用來接收地址中的參數
@RequestParam(value = "name", required = false,defaultValue="aaa") String name
json
在發送數據時,data鍵的值一定要寫成JSON.stringify(json),將數據轉換成json格式
1、以RequestParam接收:@RequestParam ("id") int id //@RequestParam注解用來接收地址中的參數
2、以實體類方式接收json對象:@RequestBody User user //@RequestBody注解用來接收request的body中的參數(可以接收json格式的數據)
3、以Map接收json對象:@RequestBody Map<String, Object> map
4、以List接收:@RequestBody List<User> list
5、@PathVariable注解可以用一個模型來接收地址欄中的參數:public String getUserInfo(@PathVariable User user) {}
注:@RequestBody:將json數據轉換成bean對象 @ResponseBody:將bean對象轉換成json數據
請求路徑參數 /url/{id}
url:http://localhost:8080/demo/123?name=ld
@GetMapping("/demo/{id}")
public void demo(@PathVariable(name = "id") String id, @RequestParam(name = "name") String name) {
System.out.println("id="+id); //123
System.out.println("name="+name); //ld
}