前后端数据交互约定

后端约定

请求类型用于操作
get查询数据
post新增数据
put更新数据
delete删除数据

前端的约定

请求类型url形式content-type后端注解
get/delete**/xxx?id=1@RequestParam/无
get/delete**/xxx参数过多超过6个或者走批量,例如一次传多个如一个id集合application/json@RequestBody
post/put**/xxxapplication/json@RequestBody

常用content-type

content-type用处
application/x-www-form-urlencoded表单/浏览器默认方式
application/json告诉服务端消息主体是序列化后的 JSON 字符串
multipart/form-data表单上传文件

PostMan用法

  • application/x-www-form-urlencoded/默认
    postman模拟表单形式请求
  • application/json
    postman模拟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=10User 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

参考资料:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值