SpringMVC (3)
目录
1. 传递对象
2. 后端参数重命名(后端参数映射)
3. 传递数组
4. 传递集合
5. 传递JSON数据
5.1 JSON概念
5.2 JSON语法
5.3 JSON字符串和Java对象互转
5.4 JSON优点
5.5 传递JSON对象
6. 获取URL中参数@PathVariable
7. 上传文件@RequestPart

1. 传递对象

【注意】
此处的 @Data 注解的作用是构造对象每个参数的 get/set 方法,以及重写 toString 方法。
要使用 @Data 注解,需要先导入 lombok 依赖。

请求传入对象数据:
服务端代码:

客户端传入数据:

响应结果(toString):

2. 后端参数重命名(后端参数映射)
例如:

传入数据与响应结果:

此处 @RequestParam 的含义是:
用 “t” 接收请求发送的数据,然后将 “t” 的值再赋值给 “createTime” 这个参数
默认情况下,如果参数没有接收到数据,会继续返回空值:


但是加上了 @RequestParam 注解,该参数就会默认变成 必传参数 :

此时如果该参数没有接收到值,就会报错,因为它是一个 必传参数 。
实际上,也可以将该参数设置为 非必传参数
只需要在 @RequestParam 内的 “required”参数的值设置为 false 即可:

此时该参数没有接收到参数,不会报错,而是直接为空值:

3. 传递数组
向数组传入数据:1,2,3,4。响应结果:

调用toString方法,打印数组:

响应结果:

除了上述方式,还可以用逗号隔开的方式向数组传入数据:

响应结果是一样的:

4. 传递集合
后端接收代码:

传入数据,响应结果:

集合也支持使用逗号隔开的方式传入数据:

如果后端没有在参数前加入 @RequestParam 就会报错:


5. 传递JSON数据
5.1 JSON概念
5.2 JSON语法
这是一段JSON数据:
{"squadName" : "Super hero squad" ,"homeTown" : "Metro City" ,"formed" : 2016 ,"secretBase" : "Super tower" ,"active" : true ,"members" : [{"name" : "Molecule Man" ,"age" : 29 ,"secretIdentity" : "Dan Jukes" ,"powers" : [ "Radiation resistance" , "Turning tiny" , "Radiationblast" ]}, {"name" : "Madame Uppercut" ,"age" : 39 ,"secretIdentity" : "Jane Wilson" ,"powers" : [ "Million tonne punch" , "Damage resistance" , "Superhumanreflexes" ]}, {"name" : "Eternal Flame" ,"age" : 1000000 ,"secretIdentity" : "Unknown" ,"powers" : [ "Immortality" , "Heat Immunity" , "Inferno" ,"Teleportation" , "Interdimensional travel" ]}]}
{ "squadName" : "Super hero squad" , "homeTown" : "MetroCity" , "formed" : 2016 , "secretBase" : "Super tower" , "active" : true , "members" :[{ "name" : "Molecule Man" , "age" : 29 , "secretIdentity" : "Dan Jukes" , "powers" :[ "Radiation resistance" , "Turning tiny" , "Radiation blast" ]},{ "name" : "MadameUppercut" , "age" : 39 , "secretIdentity" : "Jane Wilson" , "powers" :[ "Million tonnepunch" , "Damage resistance" , "Superhuman reflexes" ]},{ "name" : "EternalFlame" , "age" : 1000000 , "secretIdentity" : "Unknown" , "powers" :[ "Immortality" , "HeatImmunity" , "Inferno" , "Teleportation" , "Interdimensional travel" ]}]}
JSON的语法:
JSON的两种结构
5.3 JSON字符串和Java对象互转
< dependency >< groupId >com.fasterxml.jackson.core</ groupId >< artifactId >jackson-databind</ artifactId >< version >2.13.5</ version ></ dependency >
5.4 JSON优点
5.5 传递JSON对象
接收JSON对象, 需要使⽤ @RequestBody 注解
RequestBody: 请求正⽂,意思是这个注解作⽤在请求正⽂的数据绑定,请求参数必须在写在请求正文中
后端实现:

使用postman发送请求,以及响应:

通过Fiddler抓包,观察参数:

6. 获取URL中参数@PathVariable
@PathVariable 这个注解主要作⽤在请求URL路径上的数据绑定
用postman发送请求,以及响应结果:

@PathVariable 也可以实现“重命名”的效果:

原理与上述 @RequestParam 相同
【注意】
7. 上传文件@RequestPart
使用postman发送请求,以及结果:

文件成功上传到磁盘路径D:/temp/Cirno.jpg :

完
如果哪里有疑问的话欢迎来评论区指出和讨论,如果觉得文章有价值的话就请给我点个关注还有免费的收藏和赞吧,谢谢大家!

相关文章:
SpringMVC (3)
目录 1. 传递对象 2. 后端参数重命名(后端参数映射) 3. 传递数组 4. 传递集合 5. 传递JSON数据 5.1 JSON概念 5.2 JSON语法 5.3 JSON字符串和Java对象互转 5.4 JSON优点 5.5 传递JSON对象 6. 获取URL中参数PathVariable 7. 上传文件RequestP…...
vscode使用豆包MARSCode----集成doubao1.5 DeepSeekR1 DeepseekV3模型的ai编程插件
引入扩展 打开VSCode扩展窗口,在搜索窗口搜索MarsCode,找到MarsCode 插件单击「install」,完成安装,登录即可使用MarsCode 编程助手。 主要功能 主要快捷键 / explain 解释项目代码,AI 返回的内容有结构分类&#…...
Ubuntu 下 nginx-1.24.0 源码分析 - ngx_buf_t
ngx_buf_t 定义在 src/core/ngx_buf.h typedef struct ngx_buf_s ngx_buf_t;struct ngx_buf_s {u_char *pos;u_char *last;off_t file_pos;off_t file_last;u_char *start; /* start of buffer */u_char …...
分布式开源协调服务之zookeeper
Zookeeper简介 Zookeeper是什么? Zookeeper官网中对Zookeeper的定义还是比较明确的: ZooKeeper is a centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services…...
ubuntu系统安装playhouse三方库
ubuntu系统python3.10安装playhouse三方库 问题描述 问题描述 虚拟环境中使用pip install playhouse,返回安装成功 用pip list查看,能看到playhouse及版本号 导包时提示没有找到playhouse我那件目录,能发现 检查site-package发现问题&#x…...
【星云 Orbit-F4 开发板】04.一触即发:GPIO 外部中断
【星云 Orbit-F4 开发板】04. 一触即发:外部中断控制 摘要 本文详细介绍了如何使用STM32F407微控制器的HAL库实现外部中断功能。通过配置GPIO引脚作为外部中断源,并在中断回调函数中处理按键事件,实现了按键控制LED状态翻转的功能。本文旨在…...
笔记二:整数和浮点数在内存中存储
目录 一、数据类型介绍 二、类型的基本归类 1.整形家族: 2.浮点数家族: 3.构造类型: 4.指针类型 5.空类型: 三、整形在内存中的存储 3.1 原码,反码、补码 3.2 大小端介绍 四、浮点数在内存中的存储 编辑 4.…...
PyQT(PySide)的上下文菜单策略设置setContextMenuPolicy()
在 Qt 中,QWidget 类提供了几种不同的上下文菜单策略,这些策略通过 Qt::ContextMenuPolicy 枚举类型来定义,用于控制控件(如按钮、文本框等)在用户右键点击时如何显示上下文菜单。 以下是 Qt::ContextMenuPolicy 枚举中…...
BladeX框架接口请求跨域
前端使用代理请求接口,接口可以正常访问。如果换全路径请求就跨域。 除了后端要配置跨域 还需要修改配置文件对OPTIONS请求的限制...
如何在Apple不再支持的MacOS上安装Homebrew
手头有一台2012年产的Macbook Pro,系统版本停留在了10.15.7(2020年9月24日发布的)。MacOS 11及后续的版本都无法安装到这台老旧的电脑上。想通过pkg安装Homebrew,发现Homebrew releases里最新的pkg安装包不支持MacOS 10.15.7&…...
本地大模型编程实战(26)用langgraph实现基于SQL数据构建的问答系统(5)
本文将将扩展上一篇文章完成的 langgraph 链,继续使用基于 langgraph 链 ,对结构化数据库 SQlite 进行查询的方法。该系统建立以后,我们不需要掌握专业的 SQL 技能,可以用自然语言询问有关数据库中数据的问题并返回答案。主要完善…...
数据结构与算法:滑动窗口
前言 滑动窗口一般主要用于解决子数组或子串问题,这类的题目更看重对题目的分析和转化。 一、原理 在整个数组上,用l和r分别控制窗口的左右边界,r就扩大,l就减小。 当窗口的范围和题目中某个指标间存在单调关系时,…...
江协科技/江科大-51单片机入门教程——P[2-1] 点亮一个LED
本节将向大家介绍如何用 51 单片机去控制开发板上的 LED。开发板上的 LED 位置标注有 “LED 模块”。 第二章要写 3 个程序代码:第一个代码实现点亮开发板上的第一个 LED;第二个代码让第一个 LED 以 1 秒为周期闪烁;第三个代码使 8 个 LED 以…...
leetcode hot 100 41. 缺失的第一个正数
代码 测试用例 测试用例 测试结果 41. 缺失的第一个正数 已解答 困难 相关标签 相关企业 提示 给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。 请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。 示例 1…...
UniApp 使用 u-loadmore 完整步骤
文章目录 一、前期准备1. 安装 uView - UI 二、使用 u-loadmore组件1. 创建页面2. 编写页面代码模板部分(loadmore-demo.vue)样式部分脚本部分 三、要点补充1. u-loadmore 状态说明2. 数据请求优化3. 性能优化4. 兼容性问题 在 UniApp 开发中,…...
设置电脑一接通电源就主动开机
文章目录 1、进入BIOS2、设置4、功能弊端5、电脑自动开机的设置 1、进入BIOS 在电脑重启时,这时屏幕上会显示按XXX键到BIOS界面 没有进入BIOS提示的,按下面方法操作: 方法一 在开机显示logo的时候,立即按下面这几个按键…...
优艾智合机器人日本子公司成立,加速推进国际化布局
2月27日,工业移动机器人解决方案商优艾智合宣布日本子公司Youibot Robotics Japan株式会社(以下简称“Youibot Japan”)成立,并于东京举行开业典礼。此举标志着优艾智合在日本市场的现地服务能力进一步深化,是其全球化…...
自然语言处理NLP入门 -- 第七节预训练语言模型
1 什么是预训练模型? 在自然语言处理(NLP)里,训练一个好模型通常需要很多数据和计算资源。为了解决这个难题,就出现了“预训练模型”。 预训练模型 是指我们先在海量文本(比如网络上爬到的大量文章、对话…...
Git GitHub基础
git是什么? Git是一个分布式版本控制系统,用于管理源代码的变更。它允许多个开发者在同一个项目上协作,同时跟踪每个修改的历史记录。 关键词: 分布式版本控制软件 软件 安装到我们电脑上的一个工具 版本控制 例如论文&…...
多平台文章同步工具PostSync 安装介绍
PostSync 是一个开源的用于多平台文章同步的工具 环境安装 安装 Python:PostSync 是基于 Python 开发的,你需要确保系统中已经安装了 Python 环境,建议使用 Python 3.7 及以上版本。你可以从 Python 官方网站 下载并安装适合你操作系统的版…...
4.2-4.4
这期准备iic驱动上一期已经准备好了设备树,iic的驱动代码分为 I2C 适配器驱动和 I2C 设备驱动,一般iic适配器驱动由soc厂商去写iic设备树追加:1 &i2c4 { 2 status "okay"; 3 pinctrl-0 <&i2c4m1_xfer…...
基于Matlab实现 IEEE33节点配电网系统simulink仿真模型,并配套前推回代法潮流计算程序
基于Matlab实现 IEEE33节点配电网系统simulink仿真模型,并配套前推回代法潮流计算程序。 改进的IEEE33节点,潮流计算,电压分析,可自行加风机光伏,接电动机负载。 结果图如图所展示,附带IEEE33节点数据MATLA…...
告别预编译库:手把手教你从源码构建OpenCL开发环境(ARM64平台专属指南)
告别预编译库:手把手教你从源码构建OpenCL开发环境(ARM64平台专属指南) 在ARM64架构的嵌入式开发领域,预编译的OpenCL库往往成为性能调优的瓶颈。当你在RK3588这样的高性能平台上开发时,是否遇到过驱动版本不匹配、API…...
MiniCPM-o-4.5-nvidia-FlagOS开发入门:C语言基础与系统编程概念问答
MiniCPM-o-4.5-nvidia-FlagOS开发入门:C语言基础与系统编程概念问答 1. 引言:你的随身C语言导师 刚开始学C语言,是不是感觉有点懵?指针、内存、结构体这些概念,看书看半天,好像懂了,一写代码又…...
Tessent ATPG实战避坑:从Stuck-at到Transition Delay测试,我的向量生成与验证全流程
Tessent ATPG实战避坑指南:从Stuck-at到Transition Delay测试的完整流程解析 1. 芯片测试工程师的日常挑战 作为一名从业多年的芯片测试工程师,我深知ATPG(自动测试向量生成)工具在实际项目中的应用绝非一帆风顺。每当拿到一个新的…...
色彩心理学与品牌情感:vibrant.js颜色提取终极指南 [特殊字符]
色彩心理学与品牌情感:vibrant.js颜色提取终极指南 🎨 【免费下载链接】vibrant.js Extract prominent colors from an image. JS port of Androids Palette. 项目地址: https://gitcode.com/gh_mirrors/vi/vibrant.js 在数字时代,色彩…...
YOLO11导出TFLite格式:移动端轻量级部署,如何将YOLO11转换为TFLite格式,并测试推理效果全面实战(一)
🎬 Clf丶忆笙:个人主页 🔥 个人专栏:《YOLOv11全栈指南:从零基础到工业实战》 ⛺️ 努力不一定成功,但不努力一定不成功! 文章目录 一、YOLO11与TFLite技术概述 1.1 TFLite格式技术解析 1.2 YOLO11转TFLite的应用价值 二、环境准备与依赖安装 2.1 Python环境配置 2…...
OpenClaw数据标注:Qwen3.5-9B-AWQ-4bit辅助制作AI训练数据集
OpenClaw数据标注:Qwen3.5-9B-AWQ-4bit辅助制作AI训练数据集 1. 为什么需要AI辅助数据标注 作为一个经常折腾个人机器学习项目的开发者,数据标注一直是我最头疼的环节。上周在做一个垃圾分类模型时,面对2000多张待标注的垃圾图片࿰…...
[具身智能-298]:深度神经网络实现语音识别的库、模型、方案
在深度神经网络时代,实现语音识别(ASR)已经不再需要从零开始编写底层算法,而是更多地依赖于成熟的开源库、预训练模型以及高效的工程化方案。基于最新的行业实践(截至2026年4月),我为你梳理了目…...
Claude Code + Suno MCP:在终端中创建 AI 音乐
在现代的编程和音乐创作中,AI 正在逐渐成为一股不可忽视的力量。Claude Code 是由 Anthropic 发布的一款命令行 AI 助手,与 Suno MCP Server 相结合,用户可以直接在终端中创作歌曲,包括撰写歌词、选择风格、生成音乐,整…...
