小程序后台传值方式 - 寒江孤影

小程序后台传值方式

作者: 36D小可爱

全网最全的网络资源分享网站

手机扫码查看

特别声明:文章多为网络转载,资源使用一般不提供任何帮助,特殊资源除外,如有侵权请联系!

教程演示环境

IntelliJ IDEA 2020.3.3 x64中文插件汉化版Navicat Premium 15apache-maven-3.6.3jdk1.8.0_191MySQL5.7SpringBoot 2.3.7MyBatis-Plus

本教程使用SpringBoot项目演示,需要先配置Maven才能创建SpringBoot项目,以经典跨端框架 uni-app 为例

QQ截图20210613014045.png

先测试一个普通的String类型的传值

单个参数 GET方式请求

前端小程序代码如下

QQ截图20210613014627.png

后台代码

QQ截图20210613014644.png

返回结果如下

QQ截图20210613015016.png

如上的传值过程发送的请求可以理解为 http://localhost:8081/getData?demo=你好

单个参数 POST方式请求

如果请求方式改为POST后台则无法接收到值,因为POST方法会进行 JSON 序列化,后台接收方式应加个 @RequestBody 注解

QQ截图20210613020245.png

这样就可以接收前端传过来的json对象了

后台响应结果打印如下

QQ截图20210613020417.png

这样传值虽然简单但是取值却不容易,解决方法有两种,第一种使用实体类接收,第二种使用map集合接收

实体类接收

第一种,首先要创建一个实体类对象,实体类代码如下

QQ截图20210613022454.png

接口代码如下

QQ截图20210613021510.png

后台返回结果如下

QQ截图20210613021736.png

如果是这样跟GET请求也相差不大

map集合接收

第二种,是map集合接收参数会封装到map里面代码如下

QQ截图20210613022152.png

返回结果如下

QQ截图20210613021736.png

可以看实体类和map相差不大

多参数 POST方式请求

上面的演示仅为单个参数传值那么多个参数接口也一样吗

以POST请求测试代码如下

QQ截图20210613023510.png

响应结果如下

QQ截图20210613023625.png

那么没错多参数都是一样的

多参数 GET方式请求

那么如果是GET方式多参数的话就不能用 @RequestBody 注解进行接收应当使用 @RequestParam

原因也很简单GET 方法,会将数据转换为 query string 例如 { name: 'name', age: 18 } 转换后的结果是 name=name&age=18

举例如下

QQ截图20210613024453.png

发送的请求为 http://localhost:8081/getData?demo=你好&url=https://a14.cn&title=寒江孤影

后台如果是 @RequestBody 注解则只能接收json对象,GET请求则报400请求方式不对,应改成 @RequestParam

简单点来说就是POST请求对应 @RequestBody 注解, GET请求对应 @RequestParam 注解

以GET请求测试多参数,代码如下

QQ截图20210613024453.png

后台采用实体类接收与map相差不大代码如下

QQ截图20210613025644.png

响应结果如下

QQ截图20210613025733.png

多参数 String接收 GET方式请求

如果想用String接收就会有点麻烦

每个参数都要写对应的注解代码如下

QQ截图20210613030255.png

多参数 String接收 POST方式请求

如果是POST使用String类型接收也很麻烦,代码如下

QQ截图20210613031032.png

如上代码需要对json字符串转成实体类对象需要添加依赖

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.76</version>
</dependency>

小程序后台集合对象传值接收

一般集合对象传值用于批量操作

List<Demo> 接收

前端代码如下

QQ截图20210613032117.png

后台代码如下

QQ截图20210613032440.png

响应结果

QQ截图20210613033653.png

List<Map<String,Object>> 接收

除了可以用集合对象,也可以使用 List<Map<String,Object>> 接收

如果使用String接收则会比较麻烦,代码如下

QQ截图20210613034354.png

也是需要依赖

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.76</version>
</dependency>

对于集合参数GET请求方式并不能对它序列化,所以只能采用POST请求来发送集合对象(当然这也只是博主的猜想,如果有小伙伴知道怎么写可以私信我哦!)

最后如果在一些表单数据不能直接转成json数据的可以使用以下方法

QQ截图20210613035101.png

把数据转成json字符串在传到后台,使用 JSON.stringify() 方法

分享到:
打赏
-版权声明-

作者: 36D小可爱, 转载或复制请以 超链接形式 并注明出处 寒江孤影
原文地址: 《小程序后台传值方式》 发布于2021-6-12

阅读时间:   发布于:2021-6-12
文章标题:《小程序后台传值方式》
本文链接:https://a14.cn:443/post-28.html
本文编辑: 36D小可爱,转载请注明超链接和出处寒江孤影
收录状态:[百度已收录][360已收录][搜狗已收录]

评论一下

切换注册

登录

忘记密码?

您也可以使用第三方帐号快捷登录

切换登录

注册

小程序后台传值方式

长按图片转发给朋友

觉得文章有用就打赏一下文章作者

花呗扫一扫打赏

微信扫一扫打赏

企鹅扫一扫打赏