当前位置:首页 » 《随便一记》 » 正文

【Java基础】前端传一个数组或者集合后台怎么接受(案例详解)_辰兮要努力

20 人参与  2022年03月15日 15:24  分类 : 《随便一记》  评论

点击全文阅读


【辰兮要努力】: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对象来接受即可解决如上的问题


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

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

2021年10月4日22:52:21 愿你们奔赴在自己的热爱里!


点击全文阅读


本文链接:http://m.zhangshiyu.com/post/36241.html

接受  传入  集合  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 全书浏览重生高考填报志愿时我放任全班上大专+后续(叶淼淼宋津年颜禾晚)_重生高考填报志愿时我放任全班上大专+后续(叶淼淼宋津年颜禾晚)全书结局
  • 他的甜撩藏不住附加黎初谢时晏:结局+番外免费品鉴(他的甜撩藏不住)全本浏览阅读连载中
  • 全文他死遁后逼疯清冷女权臣+完结+后续(苏煜顾宛柔)列表_全文他死遁后逼疯清冷女权臣+完结+后续
  • 暑假毕业旅游,班花将我们身份证交给黑导游(江诗晗)全书浏览_暑假毕业旅游,班花将我们身份证交给黑导游全书浏览
  • 重生到高考前,我放任竹马为爱私奔新上热文_裴文远柳雨文远完结版_小说后续在线阅读_无删减免费完结_
  • 雨织离歌浮生浅节选_沈翊鸣苏之雨小姐完整文本_小说后续在线阅读_无删减免费完结_
  • 鬓边不是牡丹红精选(盛惟芳萧既明贺锦)_鬓边不是牡丹红精选盛惟芳萧既明贺锦
  • 宋岑月傅忠焜:结局+番外免费品鉴:结局+番外评价五颗星
  • 桑榆非晚半春休,姜晚榆沈淮遇完本_完本桑榆非晚半春休,姜晚榆沈淮遇
  • 大逃杀游戏老公一千万赌我死人气节选(萧铎纪云笙白茵茵)全书浏览_大逃杀游戏老公一千万赌我死人气节选全书浏览
  • 黎初谢时晏(他的甜撩藏不住)后续+番外精编之作_黎初谢时晏(他的甜撩藏不住)免费在线阅读无删减_笔趣阁
  • 把自己上交国家,龙神崽崽旺全国龙小小小说整本+后续(龙小小)清爽版阅读

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1