1. 请求体在url中(2)
2. 请求体以单个参数 或 JSON对象的方式传送 (2)
3. 请求体以表单的形式传送:简单表单、复杂表单 (2)
一. 请求体在url中
1.1 url: "/yourUrl/"+yourData
==>
@RequestMapping("/yourUrl/{yourDataName}")
public String yourUrl(@PathVariable("yourDataName") String yourData) {
// @PathVariable("yourDataName")必不可少,因为他指定链接中某个位置代表着名为yourDataName的变量
}
1.2 url: "/yourUrl?yourDataName=" + yourData
==>
@RequestMapping("/yourUrl")
public String yourUrl(@RequestParam("yourDataName") String yourData) {
//@RequestParam("yourDataName")是必不可少的,因为他指定了链接中的参数名称
}
二、请求体以单个参数 或 JSON对象的方式传送
2.1 url: "/yourUrl",
data: {
"username": "admin",
"password": "admin"
}
==>
@RequestMapping("/yourUrl")
public String yourUrl(@RequestParam("username") String username,
@RequestParam("password") String password) {}
2.1 url: "/yourUrl",
data: JSON.stringify(conceptMap),
==>
@RequestMapping("/yourUrl")
public String yourUrl(@RequestBody()ConceptMap conceptMap) {}
三、请求体以表单的形式传送:简单表单、复杂表单
3.1 url: "/yourUrl",
data:formData.serialize() // 对表单数据进行序列化并传递到后台
==>
@RequestMapping("/yourUrl")
public String yourUrl(@RequestParam("user") String jsonObject){
User user= JSON.parseObject(jsonObject, User.class);
// 接收表单时 无法使用 @RequestBody
}
序列化 与 反序列化
对象 → 字节 → 对象
3.2 var formData = new FormData();
formData.append("upGeoIcon",$('#fileInput')[0].files[0]);
formData.appen("geoIcon",JSON.stringify(geoIcon));
...
url: "/yourUrl",
data:formData.serialize()
==>
@RequestMapping("/yourUrl")
public String yourUrl(@RequestParam("upGeoIcon") MultipartFile mfile,
@RequestParam("geoIcon") String jsonObject){
GeoIcon geoIcon = JSON.parseObject(jsonObject, GeoIcon.class);
// 接收表单时 无法使用 @RequestBody
}