探讨SpringMVC的前后端数据交换

SpringMVC 前后端数据交互

这里只讨论最常用的contentType 即是form-data和application/json
第一种情况 提交单个参数

form-data方式

前端代码:这里为了方便用的jquery的ajax的post
在这里插入图片描述
上图的data属性 看上去是json 其实因为你的content-type是form-data 你提交的数据 不是json 而是跟你get提交参数的时候 url后面拼参数 和/test/test?name=cqy一样的 只是get的url长度不同的浏览器有限制而已 如下图所示
在这里插入图片描述

后端代码:在这里插入图片描述
提交单个参数 和提交对象 formData其实区别不大
第二种情况 提交对象
如图 前端代码:
在这里插入图片描述
这里更能看到 和get的url后面拼接参数是一样的
在这里插入图片描述

第三种情况 提交数组
在这里插入图片描述
在这里插入图片描述
本质和get提交是一样的
在这里插入图片描述
只是一定要将ids[0]=1&ids[1]=2这种转义 不然会报badRequest 400 因为[]是特殊字符
提交数组到后台的时候 后台一定要加@RequestParm(“ids[]”)这个注解 不然是什么都收不到的
在这里插入图片描述

但是这个有个诡异的情况 去掉@RequestParm的注解后 直接用url拼接的方式 后台还可以收到 但是用post的方式 却收到是null
在这里插入图片描述
在这里插入图片描述
formData常见的方式 大概如上

application/json方式

application/json就是json这种数据格式了 这种基本上是现在用的最多 也是最灵活的方式

第一种 json对象
前台代码如下:
在这里插入图片描述

这种情况前端代码需要注意的有两点
第一是必须显示的指定请求头的contentType为application/json 因为默认的请求头为form-data
第二是必须把json对象通过stringify方法转成json字符串
在这里插入图片描述
后端代码:
在这里插入图片描述
后端代码必须用注解@RequestBody来强制指定前端的请求头必须是application/json

第二种情况 提交数组
在这里插入图片描述
后端代码:
在这里插入图片描述
不用用@RequestParam去指定那么麻烦了

第三种情况 提交List
前端代码:
在这里插入图片描述

后端代码:
在这里插入图片描述
最后来整个复杂的的JSON 再在url里面拼接一个参数
前端代码:

在这里插入图片描述
后端代码:
在这里插入图片描述
后端直接用map来接收复杂的json 然后用@RequestParm来接收url后面的参数

补充一种 2020-10-12 09:40
以formData的形式提交json字符串 后台用字符串接收后 用jackson或者fastjson转成JavaBean
在这里插入图片描述
后台用字符串接受
在这里插入图片描述

基本上掌握了以上几种交互方式 springMVC的前后端传值就掌握了

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值