后端约定
请求类型 | 用于操作 |
---|
get | 查询数据 |
post | 新增数据 |
put | 更新数据 |
delete | 删除数据 |
前端的约定
请求类型 | url形式 | content-type | 后端注解 |
---|
get/delete | **/xxx?id=1 | | @RequestParam/无 |
get/delete | **/xxx参数过多超过6个或者走批量,例如一次传多个如一个id集合 | application/json | @RequestBody |
post/put | **/xxx | application/json | @RequestBody |
常用content-type
content-type | 用处 |
---|
application/x-www-form-urlencoded | 表单/浏览器默认方式 |
application/json | 告诉服务端消息主体是序列化后的 JSON 字符串 |
multipart/form-data | 表单上传文件 |
PostMan用法
- application/x-www-form-urlencoded/默认
- application/json
@RequestParam和不写的区别?
@RequestMapping("/list")
public String test(@RequestParam Long parentId) {
}
@RequestMapping("/list")
public String test( Long parentId) {
}
localhost:8080/list访问带@RequestParam会报错,必须带参数
@PathVariable获取路径中的参数
**
* 通过@PathVariable获取路径中的参数
* @param username
* @param password
* @return
*/
@RequestMapping(value="/getById/{username}/{password}",method=RequestMethod.GET)
@ResponseBody
public String getById(@PathVariable String username,@PathVariable String password) {
System.out.println("username is:"+username);
System.out.println("password is:"+password);
return "success";
}
SpringMVC中使用bean来接收form表单提交的参数时的注意点!
使用bean来接收form表单提交的参数时,pojo中必须含有默认的(即空的)构造函数,同时,需要设置到bean中的变量必须有setter方法。
总结场景:
场景 | content-type | 接受 |
---|
?id=1 | | @RequestParam(“id”) String id /String id/@RequestParam Map map |
?name=a&pw=10 | | User user/@RequestParam Map map/@RequestParam User user |
{“name”:""a} | application/json | @RequestBody String name/@RequestBody Map map |
JSON.stringify(User) | application/json | @RequestBody User user/@RequestBody Map map |
JSON.stringify(UserList) | application/json | @RequestBody List<User> params/@RequestBody List<Map<String,Object> params |
批量删除JSON.stringify(ids) | application/json | @RequestBody List<Long> ids |
参考资料: