【辰兮要努力】:hello你好我是辰兮,很高兴你能来阅读,昵称是希望自己能不断精进,向着优秀程序员前行!
博客来源于项目以及编程中遇到的问题总结,偶尔会有读书分享,我会陆续更新Java前端、后台、数据库、项目案例等相关知识点总结,感谢你的阅读和关注,希望我的博客能帮助到更多的人,分享获取新知,大家一起进步!
吾等采石之人,应怀大教堂之心,愿大家奔赴在各自的热爱里…
@[toc]
一、基础学习
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面试总结:点击进入 Java面试专栏 关注走一波
Java基础知识:点击进入 Java基础总结 关注走一波
Java项目专栏:点击进入 Java毕设专栏 关注走一波
山高水远,我们未来见……
非常感谢你阅读到这里,如果这篇文章对你有帮助,希望能留下你的点赞👍 关注❤️ 分享👥 留言💬thanks!!!
愿你们奔赴在自己的热爱里!