【Spring MVC篇】参数的传递及json数据传参

个人主页:兜里有颗棉花糖
欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创
收录于专栏【Spring MVC】
本专栏旨在分享学习Spring MVC的一点学习心得,欢迎大家在评论区交流讨论💌
在这里插入图片描述

目录

  • 一、普通参数的传递
    • 后端参数重命名
  • 二、POJO参数的传递
  • 三、数组参数的传递
  • 四、集合参数的传递
  • 五、json数据传参(重点)

一、普通参数的传递

举栗:
在这里插入图片描述
在这里插入图片描述

后端参数重命名

举栗子1:在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

传递的参数必须和RequestParam注解修饰的参数相同,将这个参数称之为必传参数。
可以使用required = falseRequestParam注解修饰的参数设置为非必传参数。

二、POJO参数的传递

在这里插入图片描述

三、数组参数的传递

请求中,同一个参数有多个时,浏览器会帮我们封装成一个数组。

在这里插入图片描述
在这里插入图片描述
元素之间也可以使用,进行分割:
在这里插入图片描述

四、集合参数的传递

在这里插入图片描述

在这里插入图片描述

解释:在使用Spring MVC框架处理请求时默认会将请求参数当作单个的字符串值进行处理,而不会自动解析成集合。通过显式地指定@RequestParam注解,并将参数名与集合类型进行匹配,可以让框架正确解析请求参数,并将其转换成对应的集合对象。

五、json数据传参(重点)

json是一个轻量级键值对形式的数据交互格式,本质是字符串(可以用来表示对象的字符串,通常称之为json字符串)。

在使用Spring MVC框架处理请求时,当请求的数据为JSON格式时,需要使用@RequestBody注解来指定该参数。

如果不添加 @RequestBody 注解,框架会默认将请求体解析为表单形式,即Content-Type为application/x-www-form-urlencoded或multipart/form-data的数据。而使用@RequestBody注解后,框架会将请求体中的数据解析为JSON格式,并绑定到方法参数上。此时就能直接获取到解析后的 Java 对象,而无需手动进行JSON的解析与转换。

举栗:
在这里插入图片描述
在这里插入图片描述

总代码如下:

package org.example.demo1.demos.web.controller;import org.example.demo1.demos.web.Person;
import org.springframework.web.bind.annotation.RequestBody;
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("/param")
@RestController
public class ParamController {@RequestMapping("/m1")public String m1(String name,Integer age) {return "普通参数的传递:name->" + name + " age->" + age;}@RequestMapping("/m2")public String m2(Person person) {return "对象参数的传递:person-> " + person.toString();}@RequestMapping("/m3")public String m3(@RequestParam(value = "name",required = false) String username, Integer age) {return "普通参数的传递:name->" + username + " age->" + age;}@RequestMapping("/m4")public String m4(String[] arrayParam) {return "数组传递参数:arrayParam-> " + Arrays.toString(arrayParam);}@RequestMapping("/m5")public String m5(@RequestParam List<String> listParam) {return "集合传递参数:listParam-> " + listParam;}@RequestMapping("/m6")public String m6(@RequestBody Person person) {return "接收的数据person:-> " + person.toString();}
}

好了,以上就是本文的全部内容了。希望各位友友可以一键三连哈!!!
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32能够做到数据采集和发送同时进行吗?

STM32能够做到数据采集和发送同时进行吗&#xff1f; 在开始前我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「STM32的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&am…

【JavaScript】对象的属性和方法

文章目录 1. 对象的属性基本属性嵌套属性计算属性名 2. 对象的方法基本方法简化方法 3. 属性和方法的访问点表示法方括号表示法 4. 属性和方法的删除删除属性删除方法 5. 属性的遍历for...in 循环Object.keys() 6. 总结 在 JavaScript 中&#xff0c; 对象是一种复合值&#x…

专业140+总分420+河海大学863信号与系统考研经验电子信息通信与信息技术,真题,大纲,参考书。

今年的成绩出来倍感欣慰&#xff0c;决定考研的时候并没有想到自己可以考出420的分数&#xff0c;通过自己一年来的努力&#xff0c;成功上岸&#xff0c;期中专业课863信号与系统140接近满分&#xff08;非常感谢信息通信Jenny老师的专业课辅导和平时悉心答疑&#xff0c;不厌…

从零开始学howtoheap:fastbins的house_of_spirit攻击1

how2heap是由shellphish团队制作的堆利用教程&#xff0c;介绍了多种堆利用技术&#xff0c;后续系列实验我们就通过这个教程来学习。环境可参见从零开始配置pwn环境&#xff1a;优化pwn虚拟机配置支持libc等指令-CSDN博客 1.fastbins的house_of_spirit攻击 house_of_spirit是…

【MATLAB源码-第138期】基于matlab的D2D蜂窝通信仿真,对比启发式算法,最优化算法和随机算法的性能。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 D2D蜂窝通信介绍 D2D蜂窝通信允许在同一蜂窝网络覆盖区域内的终端设备直接相互通信&#xff0c;而无需数据经过基站或网络核心部分转发。这种通信模式具有几个显著优点&#xff1a;首先&#xff0c;它可以显著降低通信延迟&…

波奇学Linux: 文件描述符

文件和操作系统的关系 操作系统控制进程&#xff0c;文件的打开是在进程中进行。意味着用来控制进程的PCB必然有文件的信息&#xff0c;操作系统通过控制PCB的信息来控制文件的读写。 Q1&#xff1a;如何证明文件打开是在进程中进行&#xff1f; 编写c文件调用fopen来操作文件…

SpringBoot 接入讯飞星火大模型实现对话

申请地址 https://xinghuo.xfyun.cn/sparkapi?scrprice 免费申请200万Token 开发文档 https://www.xfyun.cn/doc/spark/Web.html#_1-接口说明 页面最下面有相关demo可以参考 介绍 接口是以套接字的形式分段返回&#xff0c;而且非http请求&#xff0c;比较繁琐&#xff0c;官…

如何使用Airtest进行UI自动化测试

一、环境搭建 1、Airtest客户端下载 访问官网http://airtest.netease.com/&#xff0c;根据自己的系统下载相应的客户端安装&#xff1b; 2、python工具下载与环境搭建 在本地python环境中安装airtest和pocoui&#xff0c;然后用命令行运行脚本&#xff1b; 1、建议使用3.…

笔记:《NCT全国青少年编程能力等级测试教程Python语言编程二级》

NCT全国青少年编程能力等级测试教程Python语言编程二级 ISBN:9787302565857 绪论 专题1 模块化编程 考查方向 考点清单 考点 模块化编程 (一)模块化编程思想:结构清晰、降低复杂度;提高代码复用率;易于扩展、维护,方便阅读、优化。 …

猫头虎分享已解决Bug || RuntimeError: size mismatch, m1: [32 x 100], m2: [500 x 10]

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

奶茶点餐|奶茶店自助点餐系统|基于微信小程序的饮品点单系统的设计与实现(源码+数据库+文档)

奶茶店自助点餐系统目录 目录 基于微信小程序的饮品点单系统的设计与实现 一、前言 二、系统功能设计 三、系统实现 1、商品信息管理 2、商品评价管理 3、商品订单管理 4、用户管理 四、数据库设计 1、实体ER图 2、具体的表设计如下所示&#xff1a; 五、核心代码 …

【More Effective C++】条款2:使用C++转型操作符

C旧式转型的缺点包括&#xff1a; 没有类型安全检查&#xff1a;允许将任何指针转换为其他类型指针&#xff0c;可能导致未定义行为的错误&#xff1b;难以识别和维护&#xff1a;语法(type)expression 或 type(expression)在代码中难以被快速识别&#xff1b; 为了解决上述问…

算法||如何优化算法?算法如何评价和分析

目录 1.一个好的算法所具备的特性 2.算法分析‐‐‐评价算法 3.算法复杂度 4.时间复杂度 如何统计在程序中统计算法执行语句数 5.空间复杂度 6.程序优化的最核心思路: 总结 1.一个好的算法所具备的特性 正确: 符合语法,能够编译、链接 能够正确处理简单的输入…

Rust语言之字符串

文章目录 一、字符二、字符串1.&str2.string创建字符串遍历字符串变更字符串指定位置插入字符串字符串拼接宏拼接&#xff08;format!&#xff09; 三、切片1.字符串切片2.数组&#xff08;向量&#xff09;切片 Rust语言设计官方教程 一、字符 Rust提供char为字符存储变量…

Qt知识点总结目录

一.Qt安装配置和创建项目 Qt所有版本下载地址 Qt安装配置教程windows版&#xff08;包括&#xff1a;Qt5.8.0版本&#xff0c;Qt5.12&#xff0c;Qt5.14版本下载安装教程&#xff09;&#xff08;亲测可行&#xff09; QT从入门到入土&#xff08;一&#xff09;——Qt5.14.…

Linux操作系统基础(八):Linux的vi/vim编辑器

文章目录 Linux的vi/vim编辑器 一、vi/vim编辑器介绍 二、打开文件 三、VIM编辑器的三种模式(重点) 四、命令模式相关命令 五、底行模式相关命令 Linux的vi/vim编辑器 一、vi/vim编辑器介绍 vi是visual interface的简称, 是Linux中最经典的文本编辑器 vi的核心设计思想…

技术精英求职必备:网络安全工程师简历制作全指南

简历编写核心原则 撰写针对网络安全工程师职位的简历时&#xff0c;关键在于准确展现您在网络安全领域的专业技能、项目经验和技术成就。简历应作为您展示安全策略制定、风险管理、入侵检测和响应能力的窗口。确保每一项经历和技能都紧密贴合网络安全工程师的角色要求。具体的…

在 Windows上恢复删除照片的 4 种有效方法

您是否曾在 Windows 7/8/10/11 中不小心删除过照片&#xff1f;如何轻松快速地恢复已删除的照片&#xff1f;在这里这篇文章列出了几种在Windows 11/10/8/7中恢复已删除照片的可行方法&#xff0c;而MiniTool数据恢复软件 是丢失照片恢复的最佳选择。 意外删除的照片 根据一项…

蓝桥杯官网练习题(翻转)

问题描述 小蓝用黑白棋的 n 个棋子排成了一行&#xff0c;他在脑海里想象出了一个长度为 n 的 01 串 T&#xff0c;他发现如果把黑棋当做 1&#xff0c;白棋当做 0&#xff0c;这一行棋子也是一个长度为 n 的 01 串 S。 小蓝决定&#xff0c;如果在 S 中发现一个棋子…

口腔助手|口腔挂号预约小程序|基于微信小程序的口腔门诊预约系统的设计与实现(源码+数据库+文档)

口腔小程序目录 目录 基于微信小程序的口腔门诊预约系统的设计与实现 一、前言 二、系统功能设计 三、系统实现 1、小程序前台界面实现 2、后台管理员模块实现 四、数据库设计 1、实体ER图 2、具体的表设计如下所示&#xff1a; 五、核心代码 六、论文参考 七、最新…