【辰兮要努力】: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<T> {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 <T> 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<User> userList

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

["2021","2022"]

后台接受方式

@RequestBody List<String> 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<User> userList) {logger.info("传入的参数是{}",userList);//模拟逻辑层做一个入参校验if (CollectionUtils.isEmpty(userList)){return Result.fail();}return Result.success();}/*** 业务场景:前端传入单独一个数组* @param list* @return*/@PostMapping("/saveUserIds")public Result saveStrings(@RequestBody List<String> list) {logger.info("传入的参数是{}",list);//模拟逻辑层做一个入参校验if (CollectionUtils.isEmpty(list)){return Result.fail();}return Result.success();}}

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

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

来看看控制台打印的参数

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


二、进阶学习

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

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

入参案例如下

{"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<User> 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查看一下入参,很清晰的可以看到前端传入的参数

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


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


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

  1. java富文本传图片_使用富文本编辑器上传图片实例详解

    富文本编辑器上传图片 一.导入kindeditor的js 二.将kindeditor与一个文本域textarea进行关联,即用textarea初始化一个kindeditor对象 itemaddedit ...

  2. Java基础学习总结(33)——Java8 十大新特性详解

    Java8 十大新特性详解 本教程将Java8的新特新逐一列出,并将使用简单的代码示例来指导你如何使用默认接口方法,lambda表达式,方法引用以及多重Annotation,之后你将会学到最新的API ...

  3. Java基础、多线程、JVM、集合八股文自述(持续更新)

    Java基础.多线程.JVM.集合八股文自述 一.Java基础 1.1 object类有哪些方法? getClass().hashCode().equals().clone().toString(). ...

  4. java基础(类与对象、集合)

    java基础(类与对象.集合) 类与对象 类与对象中的栈和堆 构造方法 this关键字 面向对象三大特性 封装性(private) 继承性(extends) 方法重写(@override) 多态性 向 ...

  5. Java中大数据数组,Java基础学习笔记之数组详解

    摘要:这篇Java开发技术栏目下的"Java基础学习笔记之数组详解",介绍的技术点是"java基础学习笔记.基础学习笔记.Java基础.数组详解.学习笔记.Java&qu ...

  6. Java中如何定义一个数组呢?

    转自: Java中如何定义一个数组呢? 数组(Array)是有序的元素序列.若将有限个类型相同的变量的集合命名,那么这个名称为数组名.组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标 ...

  7. 督促自己——某客编程题3道(Java)——字符串查找、数组、集合

    督促自己--某客编程题3道(Java)--字符串查找.数组.集合 第一题: 题目描述 一个DNA序列由A/C/G/T四个字母的排列组合组成.G和C的比例(定义为GC-Ratio)是序列中G和C两个字母 ...

  8. java将前端传给后端的文字写入到word中

    java将前端传给后端的文字写入到word中 用户个人记录使用 前端代码 <!DOCTYPE html> <html lang="en"><head& ...

  9. Java中键盘输入一个数组的具体操作及说明

    在java中需要输入一个数组,再对输入的数组进行一些基本操作.这里给出了"(2)键盘输入一个数组:(2)计算数组和:(3)计算数组中的最大值 "的完整代码. import java ...

最新文章

  1. php mongoclient使用,PHP使用mongoclient简单操作mongodb数据库示例
  2. 为什么采用4~20mA的电流来传输模拟量?(转)
  3. WCF REST(9篇)
  4. JVM,卷走面试官(二)—— 有党性的前端编译
  5. 移植conda环境到另一台服务器上
  6. 设计模式-行为型软件设计模式(六)
  7. 陶瓷PCB电路板生产工艺
  8. 【博弈论】取棋子游戏
  9. gitlab多人协同工作
  10. Java初学者的建议!
  11. Mortal Kombat Tower(dp)
  12. Duplicate entry '127' for key 'PRIMARY'
  13. Kubernetes kubeadm 证书到期,更新证书
  14. umi插件------plugin-initial-state
  15. 一个中专生:我在华为面试的真实经历
  16. 可用于保健食品的中药名单,卫生部关于进一步规范保健食品原料管理的通知...
  17. [转]144P /240P/360P/480P/720P/1080P分辨率的差别
  18. Chrome、Edge浏览器多线程下载
  19. 惊闻ci框架要被开发者放弃了 目前正在找下家脱手
  20. 【云栖大会】云栖大会盛大召开 已成全球一流科技盛会

热门文章

  1. linux文件扫描并打印,Linux系统中扫描、打印的实现(转)
  2. html中心代码大全,html颜色代码大全
  3. JavaFX的:入门使用JavaFX
  4. 数据中心碳中和之路,新华三如何全栈赋能?
  5. python设置excel自动换行_python操作excel
  6. 考研逻辑-逻辑3主讲人:王超-2020-04-25
  7. 计算机进入系统黑屏,电脑进入系统后黑屏,教您电脑进入系统后黑屏怎么办
  8. B6AC 充电器的使用
  9. 计算机硬件维护实验报告,计算机硬件维护实验报告.pdf
  10. C# --- 坦克大战开发 --- 绘制游戏界面