当前位置: 首页 > news >正文

SpringMVC接收请求参数

(5)请求参数==》五种普通参数

  • 1.普通参数
    • 代码块

    @RequestMapping("/commonParam")
    @ResponseBody
    public String commonParam(String name,int age){System.out.println("普通参数传递 name ==> "+name);System.out.println("普通参数传递 age ==> "+age);return "{'module':'commonParam'}";
    }
    • GET请求==》中文不会乱码

    • POST==》中文会发生乱码

    • 在servlet配置类中配置过滤器,若过滤规则有多种以逗号分割

    @Override
    protected Filter[] getServletFilters() {CharacterEncodingFilter filter = new CharacterEncodingFilter();filter.setEncoding("UTF-8");return new Filter[]{filter};
    }
    • ※※※请求参数命名和后台参数命名必须一致,否则导致接受参数失败

    • 使用@RequestParam参数进行映射

  • 2.POJO参数==》当请求参数较多时使用pojo参数作为请求参数

    • 定义pojo类和对应的控制器

    public class User {private String name;private int age;setter、getter...
    }
    ​
    @RequestMapping("/pojoParam")
    @ResponseBody
    public String pojoParam(User user) {System.out.println("pojo参数传递 user ==> " + user);return "{'module':'pojoParam'}";
    }
    • 发送请求

    • 参数获取失败,这是由于pojo类未定义setter方法

    • ※※※请求参数名必须和pojo类属性名一一对应,否则接收失败

  • 3.嵌套pojo参数
    • pojo类+控制器

    public class User {private String name;private int age;private Address address;setter、getter...
    }
    public class Address {private String city;private String province;setter、getter...
    }
    @RequestMapping("/pojoContainPojoParam")
    @ResponseBody
    public String pojoContainPojoParam(User user) {System.out.println("嵌套pojo参数传递 user ==> " + user);return "{'module':'pojoParam'}";
    }
  • 4.数组类型参数
  • 5.集合参数
    • 控制器

    @RequestMapping("/listParam")
    @ResponseBody
    public String listParam(List<String> hobby) {System.out.println("集合类型参数传递 hobby ==> " + hobby);return "{'module':'listParam'}";
    }
    • 会发现会报错==》SpringMVC将List看做是一个POJO对象来处理,将其创建一个对象并准备把前端的数 据封装到对象中,但是List是一个接口无法创建对象,所以报错。

    • 同名请求参数可以使用@RequestParam注解映射到对应名称的集合对象中作为数据

(6)JSON数据类型请求参数

  • 1.JSON普通数组
    • 添加Jackson依赖

    <!--导入Jackson依赖-->
    <dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.15.4</version>
    </dependency>
    • 在SpringMVCConfig配置类中使用@EnableWebMvc开启json数据自动转换,里面就包含了将JSON转换成对象的功能。

    @Configuration
    @ComponentScan({"requestParam.controller"})
    @EnableWebMvc
    public class SpringMVCConfig {...}
    • 编写控制器

    @RequestMapping("/jsonParam")
    @ResponseBody
    public String commonParam(@RequestParam User user) {System.out.println("json数据类型参数传递 user ==> " + user);return "{'module':'jsonParam'}";
    }
    • 发送请求

    • 请求参数接收失败==》由于现在不是直接传递的参数,而是通过请求的Body进行传递,故@RequestParam不能使用,应该使用@RequestBody

  • 2.JSON对象
    • 控制器

    @RequestMapping("/jsonObjectParam")
    @ResponseBody
    public String commonParam(@RequestBody User user) {System.out.println("json数据类型参数传递 user ==> " + user);return "{'module':'jsonObjectParam'}";
    }
    • 发送请求

  • 3.JSON对象数组+对象嵌套
    • 控制器

    @RequestMapping("/jsonObjectArrayAndContainJsonObjectParam")
    @ResponseBody
    public String jsonObjectArrayAndContainJsonObjectParam(@RequestBody List<User>                                                                          userList) {System.out.println("json对象数组数据+嵌套数组类型参数传递 userList ==> " + userList);return "{'module':'jsonObjectArrayAndContainJsonObjectParam'}";
    }
    • 发送请求

相关文章:

SpringMVC接收请求参数

&#xff08;5&#xff09;请求参数》五种普通参数 1.普通参数 代码块 RequestMapping("/commonParam") ResponseBody public String commonParam(String name,int age){System.out.println("普通参数传递 name > "name);System.out.println("普通…...

安宝特方案 | AR助力紧急救援,科技守卫生命每一刻!

在生死时速的紧急救援战场上&#xff0c;每一秒都至关重要&#xff01;随着科技的发展&#xff0c;增强现实&#xff08;AR&#xff09;技术正在逐步渗透到医疗健康领域&#xff0c;改变着传统的医疗服务模式。 安宝特AR远程协助解决方案&#xff0c;凭借其先进的技术支持和创新…...

蓝桥杯每日真题 - 第18天

题目&#xff1a;&#xff08;出差&#xff09; 题目描述&#xff08;13届 C&C B组E题&#xff09; 解题思路&#xff1a; 问题分析 问题实质是一个带权图的最短路径问题&#xff0c;但路径的权重包含两个部分&#xff1a; 从当前城市到下一个城市的路程时间。 当前城市的…...

HTTP 协议应用场景

一、HTTP 协议简介 HTTP&#xff08;Hypertext Transfer Protocol&#xff09;即超文本传输协议&#xff0c;是用于分布式、协作式和超媒体信息系统的应用层协议&#xff0c;是互联网数据通信的基础。它采用客户端 - 服务器&#xff08;Client-Server&#xff09;的通信模式&am…...

【Linux庖丁解牛】—Linux基本指令(下)!

目录 1、grep指令 2、zip/unzip指令 3、sz/rz指令 4、tar指令 ​编辑 5、scp指令 6、bc指令 7、uname –r指令 8、重要的几个热键 9、关机 10、完结撒花 1、grep指令 grep是文本过滤器&#xff0c;其作用是在指定的文件中过滤出包含你指定字符串的内容&#xff0c;…...

python: generator model using sql server 2019

設計或生成好數據庫&#xff0c;可以生成自己設計好的框架項目 # encoding: utf-8 # 版权所有 &#xff1a;2024 ©涂聚文有限公司 # 许可信息查看 &#xff1a;言語成了邀功盡責的功臣&#xff0c;還需要行爲每日來值班嗎 # 描述&#xff1a; : 生成实体 # Author …...

Kafka怎么发送JAVA对象并在消费者端解析出JAVA对象--示例

1、在pom.xml中加入依赖 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-stream-kafka</artifactId><version>3.1.6</version></dependency> 2、配置application.yml 加入Kafk…...

深度学习(1)

一、torch的安装 基于直接设备情况&#xff0c;选择合适的torch版本&#xff0c;有显卡的建议安装GPU版本&#xff0c;可以通过nvidia-smi命令来查看显卡驱动的版本&#xff0c;在官网中根据cuda版本&#xff0c;选择合适的版本号&#xff0c;下面是安装示例代码 GPU&#xff…...

golang 嵌入式armv7l压缩编译打包

编译 Go 应用程序 go build -ldflags"-s -w" -o myapp.exe . 使用 UPX 压缩可执行文件&#xff08;window下载并设置环境变量&#xff09; upx --best --lzma myapp.exe 可从10M压缩到1M 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 …...

Makefile 之 join

join $(join <list1>,<list2> ) 名称&#xff1a;连接函数——join。 功能&#xff1a;把<list2>中的单词对应地加到<list1>的单词后面。如果<list1>的单词个数要比<list2>的多&#xff0c; 那么&#xff0c;<list1>中的多出…...

集合卡尔曼滤波(Ensemble Kalman Filter),用于二维滤波(模拟平面上的目标跟踪),MATLAB代码

集合卡尔曼滤波&#xff08;Ensemble Kalman Filter&#xff09; 文章目录 引言理论基础卡尔曼滤波集合卡尔曼滤波初始化预测步骤更新步骤卡尔曼增益更新集合 MATLAB 实现运行结果3. 应用领域结论 引言 集合卡尔曼滤波&#xff08;Ensemble Kalman Filter, EnKF&#xff09;是…...

北京申请中级职称流程(2024年)

想找个完整详细点的申请流程资料真不容易&#xff0c;做个分享送给需要的人吧。 不清楚为什么说文章过度宣传&#xff0c;把链接和页面去掉了&#xff0c;网上自己找一下。 最好用windows自带的EDGE浏览器打开申请网站&#xff0c;只有在开始申请的时间内才可以进行网上申报&…...

ubuntu.24安装cuda

1.下载CUDA Toolkit https://developer.nvidia.com/cuda-toolkit-archive 2.按照命令下载&#xff0c;安装 sudo sh cuda_12.2.2_535.104.05_linux.run 3.环境变量 sudo vi /etc/profile 最后面添加 export PATH“/usr/local/cuda-12.2/bin: P A T H " e x p o r t L D L…...

unity li2cpp逆向原理是什么?

主要涉及将Unity游戏引擎中的C#代码转换为C代码&#xff0c;并进一步编译为各平台的原生&#xff08;Native&#xff09;代码的过程&#xff0c;以及逆向工程工具如何利用这一过程中的特定文件来还原和分析原始代码。以下是对Unity IL2CPP逆向原理的详细解释&#xff1a; 对惹…...

Python网络爬虫实践案例:爬取猫眼电影Top100

以下是一个Python网络爬虫的实践案例&#xff0c;该案例将演示如何使用Python爬取猫眼电影Top100的电影名称、主演和上映时间等信息&#xff0c;并将这些信息保存到TXT文件中。此案例使用了requests库来发送HTTP请求&#xff0c;使用re库进行正则表达式匹配&#xff0c;并包含详…...

卷积神经网络(CNN)中的权重(weights)和偏置项(bias)

在卷积神经网络&#xff08;CNN&#xff09;中&#xff0c;权重&#xff08;weights&#xff09;和偏置项&#xff08;bias&#xff09;是两个至关重要的参数&#xff0c;它们在网络的学习和推断过程中起着关键作用。 一、权重&#xff08;Weights&#xff09; 1. 定义&#xf…...

华为FusionCube 500-8.2.0SPC100 实施部署文档

环境&#xff1a; 产品&#xff1a;FusionCube 500版本&#xff1a;8.2.0.SPC100场景&#xff1a;虚拟化基础设施平台&#xff1a;FusionCompute两节点 MCNA * 2硬件部署&#xff08;塔式交付场景&#xff09;免交换组网&#xff08;配置AR卡&#xff09; 前置准备 组网规划 节…...

Android 网络请求(二)OKHttp网络通信

学习笔记 OkHttp 是一个非常强大且流行的 HTTP 客户端库&#xff0c;广泛用于 Android 开发中进行网络请求。与 HttpURLConnection 相比&#xff0c;OkHttp 提供了更简单、更高效的 API&#xff0c;特别是在处理复杂的 HTTP 请求时。 如何使用 OkHttp 进行网络请求 以下是使…...

npm上传自己封装的插件(vue+vite)

一、npm账号及发包删包等命令 若没有账号&#xff0c;可在npm官网&#xff1a;https://www.npmjs.com/login 进行注册。 在当前项目根目录下打开终端命令窗口&#xff0c;常见命令如下&#xff1a; 1、登录命令&#xff1a;npm login&#xff08;不用每次都重新登录&#xff0…...

如何在Word文件中设置水印以及如何禁止修改水印

在日常办公和学习中&#xff0c;我们经常需要在Word文档中设置水印&#xff0c;以保护文件的版权或标明文件的机密性。水印可以是文字形式&#xff0c;也可以是图片形式&#xff0c;能够灵活地适应不同的需求。但仅仅设置水印是不够的&#xff0c;有时我们还需要确保水印不被随…...

GitHub自动化神器:用Cursor+Firecrawl实现项目自更新(避坑指南)

GitHub自动化神器&#xff1a;用CursorFirecrawl实现项目自更新&#xff08;避坑指南&#xff09; 在开源项目的日常维护中&#xff0c;重复性的更新工作往往消耗开发者大量精力。有没有一种方法&#xff0c;能让项目像拥有自我意识般自动完成内容搜集、代码生成甚至PR提交&am…...

3D Face HRN真实案例:用于司法鉴定中面部特征三维比对辅助系统

3D Face HRN真实案例&#xff1a;用于司法鉴定中面部特征三维比对辅助系统 1. 引言&#xff1a;从平面照片到三维证据的突破 在司法鉴定领域&#xff0c;面部特征比对一直是身份识别的重要技术手段。传统的2D照片比对方法存在角度、光照、表情等多重限制&#xff0c;往往难以…...

新一代OpenWRT主题:Neobird革新路由器管理体验

新一代OpenWRT主题&#xff1a;Neobird革新路由器管理体验 【免费下载链接】luci-theme-neobird 一个专门针对移动端优化的OpenWRT主题&#xff0c;基于luci-theme-material&#xff0c;全新的登录界面&#xff0c;沉浸式Webapp体验。 项目地址: https://gitcode.com/gh_mirr…...

AI系统-23AI芯片CPU子系统介绍

AI SoC中有很多异构核&#xff0c;围绕着这些异构核产生了很多子系统之前也介绍过:AI系统-16AI SoC推理芯片架构介绍。 这里面的老大哥毫无疑问就是CPU子系统&#xff0c;尽管其他AI子系统特别是NPU&#xff0c;是干活的主力&#xff0c;但是头把交椅还得资格最老的CPU来坐&am…...

零代码操作!FUTURE POLICE亮色界面详解:从上传到下载SRT全流程

零代码操作&#xff01;FUTURE POLICE亮色界面详解&#xff1a;从上传到下载SRT全流程 1. 认识FUTURE POLICE&#xff1a;高精度字幕对齐工具 你是否遇到过这样的困扰&#xff1f;精心制作的视频字幕总是与语音不同步&#xff0c;手动调整时间轴既耗时又费力。FUTURE POLICE正…...

智能硬件开发实战:用天问Block给ASRPRO芯片添加声控功能(含完整代码)

智能硬件开发实战&#xff1a;用天问Block给ASRPRO芯片实现声控LED系统 在智能家居和玩具开发领域&#xff0c;语音交互正成为最自然的控制方式。传统嵌入式开发需要编写复杂代码&#xff0c;而天问Block的图形化编程让创客们能像搭积木一样快速实现语音控制功能。本文将带你用…...

终极指南:使用Refine和Ant Design快速构建专业列表页面

终极指南&#xff1a;使用Refine和Ant Design快速构建专业列表页面 【免费下载链接】refine 一个用于构建内部工具、管理面板、仪表盘和B2B应用程序的React框架&#xff0c;具有无与伦比的灵活性。 项目地址: https://gitcode.com/GitHub_Trending/re/refine Refine是一…...

如何通过Mem Reduct实现系统内存智能优化?专业用户的实战指南

如何通过Mem Reduct实现系统内存智能优化&#xff1f;专业用户的实战指南 【免费下载链接】memreduct Lightweight real-time memory management application to monitor and clean system memory on your computer. 项目地址: https://gitcode.com/gh_mirrors/me/memreduct …...

从零到一:超外差收音机DIY全流程解析与调试心法

1. 超外差收音机原理精要 第一次接触超外差收音机时&#xff0c;我被这个拗口的专业名词吓到了。但拆解开来理解其实很简单——"超"指的是本振频率超过信号频率&#xff0c;"外差"则是混频产生差频的过程。这种设计巧妙地把不同电台信号都转换成固定的465k…...

快速掌握Clarke与Park变换的几何本质

1. 从三相坐标系到静止两相系的几何之旅 想象一下你站在一个布满彩色灯带的游乐场中央&#xff0c;头顶有三盏呈120度分布的聚光灯&#xff08;A、B、C相&#xff09;&#xff0c;它们交替明暗形成旋转的光影。Clarke变换就像给你戴上一副特殊眼镜&#xff0c;能将三盏灯的光影…...