【Java】前端传一个数组或者集合后台怎么接受(案例详解)

您所在的位置:网站首页 axios怎么传数组 【Java】前端传一个数组或者集合后台怎么接受(案例详解)

【Java】前端传一个数组或者集合后台怎么接受(案例详解)

#【Java】前端传一个数组或者集合后台怎么接受(案例详解)| 来源: 网络整理| 查看: 265

【辰兮要努力】:hello你好我是辰兮,很高兴你能来阅读,昵称是希望自己能不断精进,向着优秀程序员前行! 博客来源于项目以及编程中遇到的问题总结,偶尔会有读书分享,我会陆续更新Java前端、后台、数据库、项目案例等相关知识点总结,感谢你的阅读和关注,希望我的博客能帮助到更多的人,分享获取新知,大家一起进步! 吾等采石之人,应怀大教堂之心,愿我们奔赴在各自的热爱里…

一、基础学习

hello本期以实际案例的形式分享Java基础之 Java后台接受数组和集合的案例,分享给初学者

首先我们模拟创建一个user的实例

/** * @program: demo * @description: 普通用户 * @author: 辰兮要努力 * @create: 2021-10-03 11:04 */ @Data public class User { private String id; private String name; private Integer age; } 复制代码

创建一个公共的返回值的帮助类

import lombok.Data; /** * @program: demo * @description: 封装公共的返回值 * @author: 辰兮要努力 * @create: 2021-10-03 11:05 */ @Data public class Result { private static final long serialVersionUID = 1L; private Integer code; private String msg; private T data; public static Result fail() { Result Result = new Result(); Result.setCode(1); Result.setMsg("服务器错误!!!"); return Result; } public static Result fail(String msg) { Result Result = new Result(); Result.setCode(1); Result.setMsg(msg); return Result; } public static Result success(T data) { Result Result = new Result(); Result.setCode(0); Result.setData(data); return Result; } public static Result success() { Result Result = new Result(); Result.setCode(0); Result.setMsg("操作成功!"); Result.setData("success"); return Result; } } 复制代码

业务场景一:前端传对象集合后台如何接受?

[ { "id":"1", "name":"辰兮", "age":"22" }, { "id":"2", "name":"辰兮要努力", "age":"23" } ] 复制代码

后台接受方式

@RequestBody List userList 复制代码

业务场景二:前端传数组后台如何接受?

["2021","2022"] 复制代码

后台接受方式

@RequestBody List list 复制代码

简单的写一个controller层模拟业务操作:重在查看入参

/** * @program: demo * @description: 前后端传值交互案例 * @author: 辰兮要努力 * @create: 2021-10-03 11:09 */ @RestController @RequestMapping("/user") public class UserController { //打印日志 private static final Logger logger = LoggerFactory.getLogger(UserController.class); /** * 前端传对象集合 后端用集合接 * @param userList * @return */ @PostMapping("/saveList") public Result saveUserList(@RequestBody List userList) { logger.info("传入的参数是{}",userList); //模拟逻辑层做一个入参校验 if (CollectionUtils.isEmpty(userList)){ return Result.fail(); } return Result.success(); } /** * 业务场景:前端传入单独一个数组 * @param list * @return */ @PostMapping("/saveUserIds") public Result saveStrings(@RequestBody List list) { logger.info("传入的参数是{}",list); //模拟逻辑层做一个入参校验 if (CollectionUtils.isEmpty(list)){ return Result.fail(); } return Result.success(); } } 复制代码

业务场景一:前端传对象的集合后端就用对应的list接受即可

image.png

业务场景二:前端传对应的数组后台接受

image.png

来看看控制台打印的参数

image.png

使用如上的方法即可成功接受前端传入的集合或者数组

二、进阶学习

你是否遇到过这样的问题,就是前端除了传一个集合外,还要传一个字符串或者数字等属性?

业务场景:传入的集合代表要操作的数据,传入的字符串,字符串/数字 不同 走不同的业务逻辑等

入参案例如下

{ "userList":[{"id ":"1","name":"辰兮","age":"22"},{"id":"2","name":"辰兮要努力","age":"23"}], "open":1 } 复制代码

接受方式:创建一个对象接受

/** * @program: demo * @description: 用户对象接受类 * @author: 辰兮要努力 * @create: 2021-10-03 11:04 */ @Data public class UserVo { private List userList; private Integer open; } 复制代码

实践案例如下

/** * @program: demo * @description: 前后端传值交互案例 * @author: 辰兮要努力 * @create: 2021-10-03 11:09 */ @RestController @RequestMapping("/user") public class UserController { //打印日志 private static final Logger logger = LoggerFactory.getLogger(UserController.class); /** * 业务场景:前端传一个数组➕一个字符串或者数字等 * @param userVo * @return */ @PostMapping("/saveUserVo") public Result saveUserVoList(@RequestBody UserVo userVo) { logger.info("传入的参数是{}",userVo); return Result.success(); } } 复制代码

我们可以debug查看一下入参,很清晰的可以看到前端传入的参数

image.png

前后端传参,最重要的还是统一好对应的参数属性名称,传参方式等,提前确认好,开发效率会大幅提高

image.png

解答:前端除了传一个集合外,还要传一个字符串或者数字等属性,我们创建一个VO对象来接受即可解决如上的问题

hello,你好 我是辰兮,后续我会继续整理一下Java基础的相关案例,希望可以帮助到更多的初学者,欢迎学习、分享、交流、打卡!

非常感谢你阅读到这里,如果这篇文章对你有帮助,希望能留下你的点赞👍 关注❤️ 分享👥 留言💬thanks!!!

愿我们奔赴在自己的热爱里!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3