@RequestParam、@PathVariable、@RequestBody

1、中文翻译

        RequestParam-请求参数、PathVariable-路径变量、RequestBody请求体

2、作用:

        Controller中获取前端传递的参数

3、从注解本身角度分析

3.1、@PathVariable:路径变量

        通过 @PathVariable 可以将URL中占位符参数{xxx}绑定到处理器类的方法形参中,获取动态参数链接(post请求路径与get请求路径均可解析)

3.2、@RequestParam:请求参数

作用:就是把请求中的指定名称的参数传递给控制器中的形参赋值 

        1、可解析前端get请求路径后以问号拼接的参数

        2、使用@RequestParam注解获取的参数与request.getParameter()获取的参数一致(todo:具体原理后期再详细解释)

属性:1. value / name:请求参数中的名称 (必写参数)
           2. required:请求参数中是否必须提供此参数,默认值是true,true为必须提供
           3. defaultValue:默认值

3.3、@RequestBody:请求体

        主要用来接收前端传递给后端的json字符串中的数据(请求体中的数据)

例如前端post请求,contentType: 'application/json;charset=UTF-8',  请求体为json

$(function(){var user = {name : 'manmanlai',age : 18};$.ajax({type : 'POST',contentType: 'application/json;charset=UTF-8',url : 'http://127.0.0.1/testPostParam',data : JSON.stringify(user),dataType : 'json',success : function(result) {console.log(result);},error : function(e){console.log(e.status);}});
});

controller中接收参数直接以自己定义的对象接收

 自定义的user对象中需要有前端传递的参数属性

4、从前端请求角度分析

4.1 get请求

        1、get请求参数是在请求路径后面以?拼接,多个参数之间用&拼接,最终组成query。

        2、controller接收get请求的参数

                可以直接使用参数名进行接收无需加任何注解

                可以使用@RequesrParam接收

                可以用request.getParameter()接收

                可以直接封装一个对象不需要加任何注解直接放在参数中,前端传递的参数会自动映射。

4.2 post请求

post请求体类型contentType分为:

        1、application/x-www-form-urlencoded(form表单提交)

        2、multipart/form-data(form表单中有文件上传)

        3、application/json(序列化后的json字符串)

        4、text/xml(面向数据不经常使用)

4.2.1 application/x-www-form-urlencoded(form表单提交)

        这个是表单的默认提交数据类型

        参数最终在请求体中的

controller中参数

      可以直接使用参数名进行接收无需加任何注解,

      可以使用@RequesrParam接收参数

      可以用request.getParameter()接收

      可以直接封装一个对象不需要加任何注解直接放在参数中,前端传递的参数会自动映射。

4.2.2 multipart/form-data(form表单中有文件上传,同时还有参数)

congtroller中接收

      可以直接使用参数名进行接收无需加任何注解,

      可以使用@RequesrParam接收参数

      可以用request.getParameter()接收

      可以直接封装一个对象不需要加任何注解直接放在参数中,前端传递的参数会自动映射。

4.2.3 application/json(序列化后的json字符串)

        

controller中接收参数

        使用注解@RequestBody 加自定义对象接收json

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

基于单片机的智能小车泊车系统设计

摘 要:随着信息技术的进步,汽车逐渐朝着安全、智能方向发展,智能泊车系统的出现不仅能帮助人们更加快速、安全地完成泊车操作,而且适用于狭小空间的泊车操作,降低驾驶员泊车负担,减轻泊车交通事故发生率。文章基于单片机设计自动泊车系统,以单片机为核心来实现信息收集及…

Java程序OOM自动生成.hprof堆文件并使用jvisualvm分析

Java程序OOM自动生成.hprof堆文件并使用jvisualvm分析 1.示例代码2.编译两份源代码3.带jvm参数启动当内存溢出后,命令会出现4.启动jvisualvm5.导入堆文件 1.示例代码 同目录下准备两个.java源文件 StudentOne.java public class StudentOne {private String id;pri…

【Python】成功解决NameError: name ‘cv2‘ is not defined

【Python】成功解决NameError: name ‘cv2’ is not defined 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程👈 希望得到您…

Rabbit MQ详解

写在前面,由于Rabbit MQ涉及的内容较多,赶在春招我个人先按照我认为重要的内容进行一定总结,也算是个学习笔记吧。主要参考官方文档、其他优秀文章、大模型问答。自己边学习边总结。后面有时间我会慢慢把所有内容补全,分享出来也是希望可以给…

ARM和AMD介绍

一、介绍 ARM 和 AMD 都是计算机领域中的知名公司,它们在不同方面具有重要的影响和地位。 ARM(Advanced RISC Machine):ARM 公司是一家总部位于英国的公司,专注于设计低功耗、高性能的处理器架构。ARM 架构以其精简指…

20240313-2-search

search bfs 和 dfs的相关的题目 1. 全排列 题目: 给定一个数字列表&#xff0c;返回其所有可能的排列。 // premute(ans, nums, 0) void permute(vector<vector<int> > &ans, vector<int> &nums, int k){if(knums.size()-1){ans.push_back(nums);…

算法打卡day19|二叉树篇08|Leetcode 235. 二叉搜索树的最近公共祖先、701.二叉搜索树中的插入操作、450.删除二叉搜索树中的节点

算法题 Leetcode 235. 二叉搜索树的最近公共祖先 题目链接:235. 二叉搜索树的最近公共祖先 大佬视频讲解&#xff1a;二叉搜索树的最近公共祖先视频讲解 个人思路 昨天做过一道二叉树的最近公共祖先&#xff0c;而这道是二叉搜索树&#xff0c;那就要好好利用这个有序的特点…

zed2i相机驱动的安装(2)

安装完sdk和wrapper&#xff0c;启动时显示缺少标定文件&#xff0c;第一反应是运行自带的标定程序 但是此时运行ZED tools里的标定程序也会出问题 打开 On Linux : /usr/local/zed/settings/On Windows : C:\ProgramData\Stereolabs\settings 查看里面是否是空的&#xff…

Android系统签名的制作与使用

目录 1. &#x1f4c2; 背景 2. &#x1f531; 制作Android系统签名 步骤一&#xff1a;找到platform.pk8和platform.x509.pem签名文件 步骤二&#xff1a;下载keytool-importkeypair签名工具 步骤三&#xff1a;使用签名文件和签名工具生成.jks签名文件 3. ✅ 使用Andro…

嵌入空间(Embedding Space)

摘要&#xff1a; 嵌入空间&#xff08;Embedding Space&#xff09;是一种在数学、机器学习和自然语言处理等领域广泛应用的概念。它指的是将原本复杂、离散或者高维的数据结构转换为一个连续的、低维向量空间的过程&#xff0c;使得这些数据能够在新的空间中以向量的形式表示…

AI_寻路系统_修改寻路网格体__下

虚幻引擎的 寻路系统&#xff08;Navigation System&#xff09; 向人工智能代理提供了寻路功能。为了能够找到开始位置和目的地之间的路径&#xff0c;从世界的碰撞几何结构生成了寻路网格体。 默认设置将寻路网格体细分为图块&#xff0c;以允许重建寻路网格体的本地化部件。…

FFplay播放参数详解决及示例

1. -version 查看版本 2. -buildconf 查看编译配置 3. -formats 显示所有支持的媒体格式 4. -muxers 查看所有的封装 5. -demuxers 查看所有支持的解封装

webots的安装和体验

刚知道webots是一个机器人仿真软件&#xff0c;好像离开硬件可以自己玩玩&#xff0c;而且有人形机器人的源代码&#xff0c;试试看吧。 Cyberbotics: Robotics simulation with Webotshttps://www.cyberbotics.com/ 官网下载&#xff0c;有windows版本&#xff0c;看上去好简…

学习JavaEE的日子 Day27 手撕HashMap底层原理

Day27 1.手撕HashMap底层原理(重点) public class Test01 {public static void main(String[] args) {// Float float1 new Float("0.0f"); // Float float2 new Float("0.0f"); // Float result float1/float2; // System.out.println(result);/…

Airbnb将禁止在房源内安装监控摄像头

在面临隐私问题后&#xff0c;Airbnb 最近更新了政策&#xff0c;全面禁止房东在出租屋内安装并使用室内安全监控摄像头。 修订后的政策将在全球范围内适用&#xff0c;并将于4 月 30 日生效。Airbnb 表示&#xff0c;做出这一改变是为了优先考虑客人的隐私并简化安全摄像头的规…

Android 13 源码编译及报错修复

下载AOSP指定分支 repo init -u git://aosp../platform/manifest -b android-13.0.0_r83 同步代码到本地 repo sync -c 初始化编译环境, 选择构建目标 source build/envsetup.sh lunch 选择需要构建的目标&#xff0c;此处以aosp_arm64-eng为例 进行固件编译 make -j12 期间编译…

基于Matlab的车牌识别算法,Matlab实现

博主简介&#xff1a; 专注、专一于Matlab图像处理学习、交流&#xff0c;matlab图像代码代做/项目合作可以联系&#xff08;QQ:3249726188&#xff09; 个人主页&#xff1a;Matlab_ImagePro-CSDN博客 原则&#xff1a;代码均由本人编写完成&#xff0c;非中介&#xff0c;提供…

代码随想录算法训练营第25天|16.组合总和III|17.电话号码的字母组合

代码随想录算法训练营第25天|16.组合总和III|17.电话号码的字母组合 216.组合总和III 如果把 组合问题理解了&#xff0c;本题就容易一些了。 题目链接/文章讲解&#xff1a;https://programmercarl.com/0216.%E7%BB%84%E5%90%88%E6%80%BB%E5%92%8CIII.html 视频讲解&#xf…

代码随想录算法训练营第41天 | 01背包问题(二维+一维) ,416. 分割等和子集

动态规划章节理论基础&#xff1a; https://programmercarl.com/%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.html 01背包理论基础 链接&#xff1a;https://programmercarl.com/%E8%83%8C%E5%8C%85%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%8001%…

【Linux C | 多线程编程】线程的基础知识

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; &#x1f923;本文内容&#x1f923;&a…