@RequestParam、@PathVariable、@RequestBody

news2024/11/17 17:37:40

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://www.coloradmin.cn/o/1515277.html

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

相关文章

论文阅读——Vision Transformer with Deformable Attention

Vision Transformer with Deformable Attention 多头自注意力公式化为: 第l层transformer模块公式化为: 在Transformer模型中简单地实现DCN是一个non-trivial的问题。在DCN中,特征图上的每个元素都单独学习其偏移,其中HWC特征图上…

2024年【危险化学品生产单位安全生产管理人员】复审考试及危险化学品生产单位安全生产管理人员模拟试题

题库来源:安全生产模拟考试一点通公众号小程序 危险化学品生产单位安全生产管理人员复审考试根据新危险化学品生产单位安全生产管理人员考试大纲要求,安全生产模拟考试一点通将危险化学品生产单位安全生产管理人员模拟考试试题进行汇编,组成…

Antd中s-table组件某字段进行排序

Antd中s-table组件某字段进行排序 提前说明&#xff0c;s-table组件包含分页等功能 <s-tableref"table":columns"columns":data"loadData"bordered:row-key"(record) > record.id"></s-table>而其中loadData为获取表数…

【深度学习实践】HaGRID,YOLOv5,手势识别项目,目标检测实践项目

文章目录 数据集介绍下载数据集将数据集转换为yolo绘制几张图片看看数据样子思考类别是否转换下载yolov5修改数据集样式以符合yolov5创建 dataset.yaml训练参数开始训练训练分析推理模型转换onnx重训一个yolov5s后记 数据集介绍 https://github.com/hukenovs/hagrid HaGRID&a…

ElementUI Message 消息提示,多个显示被覆盖的问题

现象截图&#xff1a; 代码&#xff1a;主要是在this.$message 方法外层加上 setTimeout 方法 <script> export default {name: "HelloWorld",props: {msg: String,},methods: {showMessage() {for (let i 0; i < 10; i) {setTimeout(() > {this.$mess…

windows ffmpeg 编译环境搭建

编译ffmpeg https://www.msys2.org/ https://www.ffmpeg.org/platform.html#Microsoft-Visual-C_002b_002b-or-Intel-C_002b_002b-Compiler-for-Windows 1.安装msys2 2.安装yasm或者nasm 打开VC 本地环境命令行 唤醒msys2界面 配置编译环境变量参数 export PATH"/d/vs…

Net Core 使用Mongodb操作文件(上传,下载)

Net Core 使用Mongodb操作文件&#xff08;上传&#xff0c;下载&#xff09; 1.Mongodb GridFS 文件操作帮助类。 GridFS 介绍 https://baike.baidu.com/item/GridFS/6342715?fraladdin DLL源码&#xff1a;https://gitee.com/chenjianhua1985/mongodb-client-encapsulati…

Vue3基础速成

Vue常用语法 {{ }} 变量、表达式渲染 {{ }} 用于输出对象属性和函数返回值 <div id"hello-vue" class"demo">{{ message }} </div><script>const HelloVueApp {data() {return {message: Hello Vue!!}}}Vue.createApp(HelloVueApp).…

码头船只出行和货柜管理系统的设计与实现

针对于码头船只货柜信息管理方面的不规范&#xff0c;容错率低&#xff0c;管理人员处理数据费工费时&#xff0c;采用新开发的码头船只货柜管理系统可以从根源上规范整个数据处理流程。 码头船只货柜管理系统能够实现货柜管理&#xff0c;路线管理&#xff0c;新闻管理&#…

使用Julia及R语言生成正态分布的随机数字并写入CSV文件

在操作之前需要先下载Julia的Distributions包&#xff0c;这个包用于进行相关概率分布的函数调用。 在输入 ] 进入Julia包管理模式后输入&#xff1a; add Distributions 这里我使用我们自己实验室的实测数据 &#xff0c;平均值0.67&#xff0c;方差0.11&#xff0c;数据分…

Devin,第一位AI软件工程师

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

LeetCode.2864. 最大二进制奇数

题目 2864. 最大二进制奇数 分析 这道题目其实我们只需要保证最后一位是1&#xff0c;其余的1都放在最前面&#xff0c;这样得到的就是最大二进制奇数。 所以&#xff0c;我们先统计给定的字符串有多少个 1&#xff0c;多少个 0&#xff0c;把其中一个 1 放在最后一位&…

【C#】【SAP2000】读取SAP2000中所有Frame对象的应力比到Grasshopper中

if (build true) {// 连接到正在运行的 SAP2000// 使用 System.Runtime.InteropServices.Marshal.GetActiveObject 方法获取正在运行的 SAP2000 实例cOAPI mySapObject (cOAPI)System.Runtime.InteropServices.Marshal.GetActiveObject("CSI.SAP2000.API.SapObject"…

趣学前端 | 平平无奇的JavaScript函数

背景 最近睡前习惯翻会书&#xff0c;重温了《JavaScript权威指南》。这本书&#xff0c;文字小&#xff0c;内容多。两年了&#xff0c;我才翻到第十章。因为书太厚&#xff0c;平时都充当电脑支架。 JavaScript函数 读这章之前&#xff0c;我感觉我三十年开发功力&#xf…

构建社区服务平台的智慧架构

社区服务平台作为连接社区居民与各类服务资源的桥梁&#xff0c;承载着提升居民生活品质、促进社区发展的重要使命。本文将深入探讨社区服务平台的架构设计理念、核心功能和发展前景&#xff0c;助力读者了解如何构建智慧化、便捷化的社区服务平台&#xff0c;为社区居民提供更…

SpringBoot+Vue项目报错(问题已解决)

1、错误日志 2、分析原因&#xff1a; JWT strings must contain exactly 2 period characters. Found: 0 JWT字符串必须包含2个句号字符。发现:0 分析&#xff1a;可以判断出大概可能是token格式出现了问题 3、参考 http://t.csdnimg.cn/hfEiY 4、检查后端代码是否出现问…

VR数字展厅在企业中应用的优势有哪些?

随着VR全景技术的成熟&#xff0c;VR数字展厅逐渐成为了企业展示形象和产品的重要手段之一。VR企业数字展厅是一种通过VR技术、3D建模技术展示企业形象和产品的创新方式&#xff0c;将企业线下的展厅搬到线上&#xff0c;为企业品牌形象带来了很多优势。 VR数字展厅在企业中应用…

数学实验_Matlab使用2_简单绘图

简单使用 x -pi * 2 : .1 : pi*2;y sin(x);plot(x, y); % 绘制普通图像plot(x, y, k-.*); % 绘制2维图像&#xff0c;线为实线&#xff0c;*为每个点&#xff08;Matlab的画图比较原始&#xff0c;就是简单的秒点画图&#xff09;grid on; % 打开网状格式% grid off; % 关闭…

php中 0 == ‘’(0等于任意字符串) 判断是否成立 返回true

php中不同类型变量之间比较大小 一、背景二、探究0是为什么&#xff1f;三、探究 0all是为什么&#xff1f;四、程序中如何判断0是否等于指定字符串 一、背景 最近在项目实际开发中&#xff0c;我需要判断前端传来的参数值是否等于一个字符串&#xff1b;然后发现当参数值是0时…

每天五分钟计算机视觉:如何构造分类定位任务的算法模型?

本文重点 本节课程我们将学习分类定位的问题,也就是说不仅要完成图片分类任务,然后还要完成定位任务。如下所示,我们不仅要用算法判断图片中是不是一辆车,还要在图片中标记出它的位置,用边框对象圈起来,这就是分类定位问题。 一般可能会有一张图片对应多个对象,本节课我…