【JavaEE】_Spring MVC项目使用数组与集合传参
目录
1. 使用数组传参
1.2 传递单个参数
1.3 传递多个名称相同的参数
1.3.1 关于urlencode
2. 使用集合传参
1. 使用数组传参
创建一个Spring MVC项目,其中 .java文件内容如下:
package com.example.demo.controller;import com.example.demo.Person;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;import java.util.Arrays;@RequestMapping("/Para")
@RestController
public class ParaController {@RequestMapping("/M6")public String m6(String[] arrayPara){return "ArrayPara has received:\n"+ Arrays.toString(arrayPara);}
}
注:注意返回语句的书写:如果写成 return "ArrayPara has received:\n"+ arrayPara; 返回的是一个地址,需将其转为字符串进行返回;
使用浏览器构造HTTP请求发送给目标地址:
1.2 传递单个参数

1.3 传递多个名称相同的参数

即:当客户端在同一个请求中发送了多个同名的参数,浏览器会帮我们封装为一个数组;
1.3.1 关于urlencode
对于1.3 中提到的在同一个请求中传递多个名称相同的参数的问题,
构造该请求时,除了使用&连接的键值对作为query string部分进行多参数传递的方法外,
还可以直接使用逗号连接多个参数值:
即构造参数如下:

这种方式会被成功解析是因为Chrome浏览器会进行urlencode,
关于urlencode问题,在本专栏关于servlet项目前端向后端传参时,也曾提及,文章链接如下:
【JavaEE】_前端使用GET请求的queryString向后端传参-CSDN博客
https://blog.csdn.net/m0_63299495/article/details/136307074不止Chrome,postman也支持urlencode操作,在postman上构造这种类型的请求也可以成功发送并成功收到响应;
可以加上数组长度的输出语句,验证urlencode操作的执行:
.java文件内容如下:
package com.example.demo.controller;import com.example.demo.Person;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;import java.util.Arrays;@RequestMapping("/Para")
@RestController
public class ParaController {@RequestMapping("/M6")public String m6(String[] arrayPara){return "ArrayPara has received:\n"+ Arrays.toString(arrayPara)+ "\nThe length is: " + arrayPara.length;}
}
运行启动类后,使用postman构造如下请求并发送 :

2. 使用集合传参
以List接口为例:
.java文件内容如下:
package com.example.demo.controller;import com.example.demo.Person;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;import java.util.Arrays;
import java.util.List;@RequestMapping("/Para")
@RestController
public class ParaController {@RequestMapping("/M7")public String m7(List<String> listParam){return "ListParam has received:\n" +listParam+"\nThe length is: " + listParam.size();}
}
运行启动类后,使用postman构造如下请求并发送 :

查看错误日志:

表示:默认封装方式为数组,而非List接口;
如果需要使用List接口,需要使用一个注解@RequestParam:
现修改.java文件如下:
package com.example.demo.controller;import com.example.demo.Person;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;import java.util.Arrays;
import java.util.List;@RequestMapping("/Para")
@RestController
public class ParaController {@RequestMapping("/M7")public String m7(@RequestParam(required = false) List<String> listParam){return "ListParam has received:\n" +listParam+"\nThe length is: " + listParam.size();}
}
再次运行启动类,使用postman构造如下请求并发送 :

可见此时参数传递成功;
注:关于@RequestParam注解,在后端代码重命名时也曾使用过,此部分相关原文链接如下:
【JavaEE】_Spring MVC项目之使用对象传参-CSDN博客
https://blog.csdn.net/m0_63299495/article/details/136488702
相关文章:
【JavaEE】_Spring MVC项目使用数组与集合传参
目录 1. 使用数组传参 1.2 传递单个参数 1.3 传递多个名称相同的参数 1.3.1 关于urlencode 2. 使用集合传参 1. 使用数组传参 创建一个Spring MVC项目,其中 .java文件内容如下: package com.example.demo.controller;import com.example.demo.Per…...
Centos 9 安装 k8s
为了尽可能契合生产环境的部署情况,这里用kubeadm安装集群,同时方便跟随笔记一步步实践的过程,也更加了解k8s的一些特性和基础知识。 先决条件 这里将通过虚拟机安装3台centos stream 9服务器,并组成kubeneters集群(…...
WiFi模块助力少儿编程:创新学习与实践体验
随着科技的飞速发展,少儿编程已经成为培养孩子们创造力和问题解决能力的重要途径之一。在这个过程中,WiFi模块的应用为少儿编程领域注入了新的活力,使得学习编程不再是单一的代码教学,而是一个充满创新与实践的综合性体验。 物联网…...
最新:Selenium操作已经打开的Chrome(免登录)
最近重新尝试了一下,之前写的博客内容。重新捋了一下思路。 目的就是,selenium在需要登录的网站面前,可能就显得有些乏力,因此是不是有一种东西,可以操作它打开我们之前打开过的网站,这样就不用登录了。 …...
三色标记过程
可达性分析 GC过程中需要对对象图遍历做可达性分析。使用了三色标记法进行分析。 什么三色? 白色:尚未访问过。 黑色:本对象已访问过,而且本对象 引用到 的其他对象 也全部访问过了。 灰色:本对象已访问过࿰…...
记录汇川:IO隔离编程
IO隔离:方便程序修改 无论是输入点坏了还是输出点坏了,或者人为接错线,或者对调点,我们只需要更改IO隔离得输入输出就可以了。方便。 停止按钮外接常闭,里面也使用常闭,为了断线检测功能(安全)ÿ…...
【Docker】容器的生态系统
Docker提供了一整套技术支持,包括核心技术、平台技术、支持技术。 核心技术 容器核心技术是指能让Container(容器)在host(集群、主机)上运行起来的那些技术。 1)容器规范:OCI(runt…...
AVL树讲解
AVL树 1. 概念2. AVL节点的定义3. AVL树插入3.1 旋转 4.AVL树的验证 1. 概念 AVL树是一种自平衡二叉搜索树。它的每个节点的左子树和右子树的高度差(平衡因子,我们这里按右子树高度减左子树高度)的绝对值不超过1。AVL的左子树和右子树都是AV…...
20240308-1-校招前端面试常见问题CSS
校招前端面试常见问题【3】——CSS 1、盒模型 Q:请简述一下 CSS 盒模型? W3C 模式:盒子宽widthpaddingbordermargin 怪异模式:盒子宽widthmargin Q:inline、block、inline-block 元素的区别? inline&am…...
linux系统简述docker
简述docker docker理念docker三要素docker平台架构docker运行的基本流程 docker理念 一次镜像,处处运行 基于go语言实现的项目 解决了运行环境和配置问题的软件容器,方便做持续集成并有助于整体发布的容器虚拟化技术 能够使硬件、操作系统和应用程序三者…...
【论文阅读】Mamba:选择状态空间模型的线性时间序列建模(一)
文章目录 Mamba:选择状态空间模型的线性时间序列建模介绍状态序列模型选择性状态空间模型动机:选择作为一种压缩手段用选择性提升SSM 选择性SSM的高效实现先前模型的动机选择扫描总览:硬件感知状态扩展 Mamba论文 Mamba:选择状态空间模型的线性时间序列建…...
漏洞复现-蓝凌LandrayOA系列
蓝凌OA系列 🔪 是否利用过 优先级从高到低 发现日期从近到远 公司团队名_产品名_大版本号_特定小版本号_接口文件名_漏洞类型发现日期.载荷格式LandrayOA_Custom_SSRF_JNDI漏洞 LandrayOA_sysSearchMain_Rce漏洞 LandrayOA_Custom_FileRead漏洞...
计算机网络 路由算法
路由选择协议的核心是路由算法,即需要何种算法来获得路由表中的各个项目。 路由算法的目的很明显,给定一组路由器以及连接路由器的链路,路由算法需要找到一条从源路由器到目的路由器的最佳路径,通常,最佳路径是由最低…...
【C++ 学习】构造函数详解!!!
1. 类的6个默认成员函数的引入 ① 如果一个类中什么成员都没有,简称为空类。 ② 空类中真的什么都没有吗?并不是,任何类在什么都不写时,编译器会自动生成以下6个默认成员函数。 ③ 默认成员函数:用户没有显式实现&…...
【LeetCode】72. 编辑距离(中等)——代码随想录算法训练营Day55
题目链接:72. 编辑距离 题目描述 给你两个单词 word1 和 word2, 请返回将 word1 转换成 word2 所使用的最少操作数 。 你可以对一个单词进行如下三种操作: 插入一个字符删除一个字符替换一个字符 示例 1: 输入:w…...
关于手机是否支持h264的问题的解决方案
目录 现象 原理 修改内容 现象 开始以为是手机不支持h264的编码 。机器人chatgpt一通乱扯。 后来检查了下手机,明显是有h264嘛。 终于搞定,不枉凌晨三点起来思考 原理 WebRTC 默认使用的视频编码器是VP8和VP9,WebRTC内置了这两种编码器…...
借助Aspose.html控件,在 Java 中将 URL 转换为 PDF
如果您正在寻找一种将实时 URL 中的网页另存为 PDF文档的方法,那么您来对地方了。在这篇博文中,我们将学习如何使用 Java 将 URL 转换为 PDF。从实时 URL转换HTML网页可以像任何其他文档一样保存所需的网页以供离线访问。将网页保存为 PDF 格式可以轻松突…...
数据结构——堆的应用 堆排序详解
💞💞 前言 hello hello~ ,这里是大耳朵土土垚~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹 💥个人主页&#x…...
Sftp服务器搭建(linux)
Sftp服务器搭建(linux) 一、基本工作原理 FTP的基本工作原理如下: 1)建立连接:客户端与服务器之间通过TCP/IP建立连接。默认情况下,FTP使用端口号21作为控制连接的端口。 2)身…...
Neo4j 新手教程 环境安装 基础增删改查 python链接 常用操作 纯新手向
Neo4j安装教程🚀 目前在学习知识图谱的相关内容,在图数据库中最有名的就是Neo4j,为了降低入门难度,不被网上很多华丽呼哨的Cypher命令吓退,故分享出该文档,为自己手动总结,包括安装环境,增删改查…...
终极完整指南:5分钟快速部署《Degrees of Lewdity》中文版
终极完整指南:5分钟快速部署《Degrees of Lewdity》中文版 【免费下载链接】Degrees-of-Lewdity-Chinese-Localization Degrees of Lewdity 游戏的授权中文社区本地化版本 项目地址: https://gitcode.com/gh_mirrors/de/Degrees-of-Lewdity-Chinese-Localization …...
51单片机printf重定向避坑指南:为什么你的printf卡死了?
51单片机printf重定向避坑指南:为什么你的printf卡死了? 当你第一次在51单片机项目中使用printf函数时,可能会遇到一个令人困惑的现象:程序莫名其妙地卡死了,没有任何输出。这种情况在初学者中非常常见,而问…...
Arduino 运行异常的 7 个典型诱因与规避策略
1. 函数调用过载引发的崩溃 Arduino最常见的崩溃场景之一就是函数调用堆栈溢出。这个问题特别容易出现在递归函数设计中,我曾经在一个温控项目中就踩过这个坑。当时为了计算温度变化趋势,我写了个递归函数,结果设备运行不到半小时就自动重启。…...
R语言预测实战:用predict()函数搞定线性回归与逻辑回归(附完整代码)
R语言预测实战:从模型拟合到商业决策的完整指南 在数据分析的实际应用中,构建模型只是第一步,真正的价值在于如何将模型转化为可操作的商业洞察。R语言中的predict()函数就像数据分析师的瑞士军刀,它能将抽象的统计模型转化为具体…...
FreeRTOS任务优先级设置指南:以温湿度监测和LED控制为例(避坑分享)
FreeRTOS任务优先级设置实战:温湿度监测与LED控制的平衡艺术 在嵌入式系统开发中,任务优先级的合理分配往往决定了整个系统的响应性和稳定性。我曾在一个农业温室监控项目中,因为优先级设置不当导致温湿度数据采集延迟高达2秒,差点…...
烽火HG5143D光猫折腾实录:用Fiddler抓包+U盘拷贝,一步步拿到超级密码
烽火HG5143D光猫深度探索:从抓包分析到权限获取实战指南 家里新装的烽火HG5143D光猫限制太多?想实现桥接模式却找不到入口?作为一名长期折腾家庭网络的技术爱好者,我最近就遇到了这个棘手问题。电信提供的这款光猫默认屏蔽了许多高…...
Perl哈希怎么用?
Perl 哈希 哈希是 key/value 对的集合。 Perl中哈希变量以百分号 (%) 标记开始。 访问哈希元素格式:${key}。 以下是一个简单的哈希实例: 实例 #!/usr/bin/perl %data (google, google.com, , example.com, taobao, taobao.com); print "\$d…...
IDM激活脚本终极指南:永久免费解锁下载管理神器
IDM激活脚本终极指南:永久免费解锁下载管理神器 【免费下载链接】IDM-Activation-Script IDM Activation & Trail Reset Script 项目地址: https://gitcode.com/gh_mirrors/id/IDM-Activation-Script Internet Download Manager(IDMÿ…...
强力解密SHc加密脚本:UnSHc完整实战指南
强力解密SHc加密脚本:UnSHc完整实战指南 【免费下载链接】UnSHc UnSHc - How to decrypt SHc *.sh.x encrypted file ? 项目地址: https://gitcode.com/gh_mirrors/un/UnSHc 在Shell脚本安全领域,SHc加密工具因其强大的保护能力而广受欢迎&#…...
终极指南:如何用AI篮球分析工具快速提升投篮命中率
终极指南:如何用AI篮球分析工具快速提升投篮命中率 【免费下载链接】AI-basketball-analysis :basketball::robot::basketball: AI web app and API to analyze basketball shots and shooting pose. 项目地址: https://gitcode.com/gh_mirrors/ai/AI-basketball-…...
