请求响应:常见参数接收及封装(数组集合参数及日期参数)

数组参数

在前端页面的表单中,存在复选框元素,当提交表单到后端的时候,会将复选框中的全部内容提交到后端进行处理,由于复选框中往往存在很多数据,并且同复选框中数据名称相同,这样的请求参数叫做数组参数:请求参数名相同并且请求参数为多个,这样的请求参数就是数组参数, 此时想要在后端正确接收到这些数组参数,就需要使用数组(或集合)。

这三个同名的hobby参数就是数组参数。

通过数组接收

可以在后端通过定义数组类型的形参接收。

@RequestMapping("/hobbies")
public String getArrayParameter(String[] hobby) {
    for (String hobbies : hobby) {
        System.out.println(hobbies);
    }
    return "successful";
}

因为请求参数是数组参数,所以说通过方法形参中的hobby数组就可以全部接收请求参数,(注意:形参数组名必须和请求参数名一致,否则无法正确接收) 接收了这些数组参数后封装为了数组,便于使用:

通过集合接收

对于数组参数,还可以使用集合进行接收,其原理和通过数组接收是一样的,但是使用集合参数接收时,需要在方法形参前使用注解@RequestParam来绑定参数关系,因为数组参数默认是使用数组接收的,并且若集合名和参数名相同,则@RequestParam不需要指定属性,若不同则需要用name属性绑定正确的参数对应关系:

@RequestMapping("/listParameter")
public String getListParameter(@RequestParam List<String> hobby) {
    for (String s : hobby) {
        System.out.println(s);
    }
    System.out.println("用集合成功接收数组参数");
    return "successful";
}

通过集合也成功接收到了数组请求参数,但是特别注意:因为默认是使用数组接收数组参数,所以说当使用集合进行接收时需要使用@RequestParam注解绑定参数关系。

日期参数

前端经常会传递一些日期时间类型的参数,比如:用户生日、入职日期、操作时间等,这些都是很常见的情况,这些时间参数可以根据需要接收并封装到Date或LocalDateTime等时间类中使用,但是由于日期的格式多种多样,服务端不好判断,所以说在接收的时候需要使用@DateTimeFormat注解中的pattern属性指定接收的日期格式是什么样子的 (@DateTimeFormat中pattern中的日期格式必须和前端传递的日期格式相同,否则无法成功接收)。

假设前端传递的时间参数是:2024-12-04 21:05:00,那么@DateTimeFormat的pattern就应该是:yyyy-MM-dd HH:mm:ss,这样才可以成功接收到这个时间参数。

@RequestMapping("/date")
public String getDateParameter(@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime time) {
    System.out.println(time);
    return "现在时间是" + time;
}

 

 

注意:pattern中的时间格式必须和时间参数的格式完全一致,否则直接报错,并且接收日期参数的形参名也必须和传递的时间参数完全一致,否则也无法成功接收。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/928834.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Artec Leo 3D扫描仪 革新家具行业的数字化展示【沪敖3D】

随着科技的飞速进步&#xff0c;三维扫描技术已被广泛应用于包括家居行业在内的多个行业。面对现代消费者对家居产品日益增长的个性化和多样化需求&#xff0c;传统的家居设计和展示方法已难以满足市场需求。三维扫描技术的出现&#xff0c;为家居行业带来了新的发展机遇&#…

Qt 安装Qt Serial Port

最近要用Qt写个串口上位机软件&#xff0c;发现Qt的串口库用不了&#xff0c;上网找了一下资料&#xff0c;找到一种解决办法&#xff0c;具体操作如下&#xff1a; 参考文章&#xff1a;https 目录 一、找到QT安装路径&#xff0c;并运行Qt Maintenance Tool二、选择 添加或移…

重生之我在异世界学编程之C语言:操作符篇

大家好&#xff0c;这里是小编的博客频道 小编的博客&#xff1a;就爱学编程 很高兴在CSDN这个大家庭与大家相识&#xff0c;希望能在这里与大家共同进步&#xff0c;共同收获更好的自己&#xff01;&#xff01;&#xff01; 本文目录 引言正文1. 算术操作符2. 关系&#xff0…

FPGA Xilinx维特比译码器实现卷积码译码

FPGA Xilinx维特比译码器实现卷积码译码 文章目录 FPGA Xilinx维特比译码器实现卷积码译码1 Xilinx维特比译码器实现2 完整代码3 仿真结果 MATLAB &#xff08;n,k,m&#xff09;卷积码原理及仿真代码&#xff08;你值得拥有&#xff09;_matlab仿真后代码-CSDN博客 MATLAB 仿真…

识别医疗设备制造中的变异性的三个步骤

质量控制是医疗设备制造的关键支柱。毕竟&#xff0c;如果产品不符合最高的安全和功能标准&#xff0c;人们可能会被误诊、受伤甚至死亡。每个设备都必须符合精确的规格和法规&#xff0c;即使是微小的偏差也可能产生重大影响。 我们将以优化磁共振成像&#xff08;MRI&#xf…

数据结构---链表(2)---双向链表

链表(1)中讲过了在OJ题中出现很多并且能作为一些复杂数据结构子结构的不带头单向不循环链表&#xff0c;下面讲解应用很广很实用的带头双向循环链表。 三、双向链表---DoublyLinkedList 演示带头双向循环链表(实用)。 带头--->不需要对空链表继续单独判断&#xff1b;循环…

JAVA |日常开发中读写TXT文本详解

JAVA &#xff5c;日常开发中读写TXT文本详解 前言一、读取 TXT 文本1.1 使用BufferedReader读取1.2 使用Scanner读取 二、写入 TXT 文本2.1 使用BufferedWriter写入2.2 使用PrintWriter写入2.3 字节流写入&#xff08;FileOutputStream&#xff09;后转换为字符流&#xff08;…

clion解决默认编译器乱码问题

解决乱码问题 如图所示当我们在clion下开发时如果输入中文&#xff0c;会有乱码出现。 问题的产生 clion默认的C/C编译器&#xff08;MinGW&#xff09;对中文的解析有问题出现乱码。 解决方案 修改文件的编码方式 进入clion的Settings(设置)–>Editor(编辑) —>Fil…

pset2 substitution.c

1.extension&#xff1a;To Do Tasks 推荐一个vscode里面一个很好用的插件&#xff01;&#xff01;&#xff01;写出解决的步骤&#xff0c;不但理清楚思路。还可以提高效率&#xff01;特别是针对一些文本比较长的pset&#xff0c;要求多且零碎&#xff0c;反复切换页面&…

程序员需要具备哪些知识?

程序员需要掌握的知识广泛而深厚&#xff0c;这主要取决于具体从事的领域和技术方向。不过&#xff0c;有些核心知识是共通的&#xff0c;就像建房子的地基一样&#xff0c;下面来讲讲这些关键领域&#xff1a; 1. 编程语言&#xff1a; 无论你是搞前端、后端、移动开发还是嵌…

解密时序数据库的未来:TDengine Open Day技术沙龙精彩回顾

在数字化时代&#xff0c;开源已成为推动技术创新和知识共享的核心力量&#xff0c;尤其在数据领域&#xff0c;开源技术的涌现不仅促进了行业的快速发展&#xff0c;也让更多的开发者和技术爱好者得以参与其中。随着物联网、工业互联网等技术的广泛应用&#xff0c;时序数据库…

云计算vsphere 服务器上添加主机配置

这里是esxi 主机 先把主机打开 然后 先开启dns 再开启 vcenter 把每台设备桌面再vmware workstation 上显示 同上也是一样 &#xff0c;因为在esxi 主机的界面可能有些东西不好操作 我们选择主机和集群 左边显示172.16.100.200

Kotlin报错:lateinit property xxx has not been initialized

Kotlin报错&#xff1a;lateinit property xxx has not been initialized 发生在定义了一个名为xxx的lateinit变量。 解决&#xff0c;在调用前&#xff0c;可以先判断一层该xxx变量是否已经初始化&#xff1a; if (this::xxx.isInitialized) {//正常使用该变量} kotlin.Unini…

【ArcGIS微课1000例】0134:ArcGIS Earth实现二维建筑物的三维完美显示

文章目录 一、加载数据二、三维显示三、三维符号化一、加载数据 加载配套实验数据(0134.rar中的建筑物,2d或3d都可以),方法如下:点击添加按钮。 点击【Add Files】,在弹出的Open对话框中,选择建筑物,点击确定,完成添加。 默认二维显示: 二、三维显示 右键建筑物图层…

【Linux系统编程】——理解冯诺依曼体系结构

文章目录 冯诺依曼体系结构硬件当代计算机是性价比的产物冯诺依曼的存储冯诺依曼的数据流动步骤冯诺依曼结构总结 冯诺依曼体系结构硬件 下面是整个冯诺依曼体系结构 冯诺依曼结构&#xff08;Von Neumann Architecture&#xff09;是现代计算机的基本结构之一&#xff0c;由数…

H3C OSPF实验

实验拓扑 实验需求 按照图示配置 IP 地址按照图示分区域配置 OSPF &#xff0c;实现全网互通为了路由结构稳定&#xff0c;要求路由器使用环回口作为 Router-id&#xff0c;ABR 的环回口宣告进骨干区域 实验解法 一、配置IP地址 [R1]int l0 [R1-LoopBack0]ip add 1.1.1.1 32 […

【工具变量】上市公司企业所在地城市等级直辖市、副省级城市、省会城市 计划单列市(2005-2022年)

一、包含指标&#xff1a; 股票代码 股票代码 股票简称 年份 所属城市 直辖市&#xff1a;企业所在地是否属于直辖市。1是&#xff0c;0否。 副省级城市&#xff1a;企业所在地是否属于副省级城市。1是&#xff0c;0否。 省会城市&a…

Android Studio历史版本下载

Android Studio 下载文件归档 | Android Developers 一定要选择英文环境&#xff0c; 拉到最后&#xff0c;同意

纯粹直播 1.7.7 |手机版和TV版,聚合六大直播平台,原画播放

纯粹直播是一款开源的应用程序&#xff0c;支持兴趣化主题的游戏直播、户外直播和才艺直播节目。目前可以观看斗鱼、B站、虎牙和抖音等六大直播平台的内容。该应用适配了安卓手机和电视盒子平台使用&#xff0c;并且软件无广告&#xff0c;提供原画质播放体验。 大小&#xff…

【Docker】针对开发环境、测试环境、生产环境如何编排?

目录 一、引言 二、Docker Compose 文件基础 三、针对不同环境的 Docker 编排 开发环境 测试环境 生产环境 四、配置文件全局变量的编写 五、总结 一、引言 在软件开发和部署的过程中&#xff0c;不同的环境有着不同的需求和配置。Docker 作为一种强大的容器化技术&…