@RequestMapping运用举例(有源码) 前后端如何传递参数?后端如何接收前端传过来的参数,传递单个参数,多个参数,对象,数组/集合(有源码)

目录

一、@RequestMapping  路由映射

二、参数传递

1、传递单个参数

2、传递多个参数

3、传递对象

4、后端参数重命名


一、@RequestMapping  路由映射

  • 指定请求访问的路径
  • 既可以修饰类,又可以修饰方法

@RequestMapping支持Get、Post、Delete等多种请求方式

@RestController
@RequestMapping("/user")
public class HelloController {@RequestMapping("/sayhi")public String sayHi(){return "Hi,SpringBoot";}@RequestMapping("/sayhello")public String sayHello(){return "Hello,SpringBoot";}
}

假设该程序在本地运行,则访问的url路径为       localhost:8080/user/sayhi

         /user即类的路径,/sayhi是方法的路径

若类上没有@RequestMapping等注解进行路由映射的话,直接端口号后加方法的路径即可

        如:    localhost:8080/sayhi

注意: / 可以省略,但建议企业开发时,统一加上,前加后不加

@RequestMapping注解没有写属性名,默认是value

若要限制请求方式,使用method属性  如:

@RequestMapping(value = "/sayhi",method = RequestMethod.POST)public String sayHi(){return "Hi,SpringBoot";}

比如上面的代码就限制了/sayhi路径的访问必须是POST请求

二、参数传递

此处我们加上类路径/user避免路由重复(读者可忽略这句话,不影响)

1、传递单个参数

    @RequestMapping("/m1")public String m1(String name){return "接收到的参数name:" + name;}

后端接收单个参数,此处是name,字符串类型,并返回字符串

前端传过来的请求中需要带上name参数,需要名称完全一样,参数前用?与路由隔开

浏览器直接访问:

Postman构造请求(本地路由既可以用127.0.0.1,也可以用localhost):

底层逻辑:从请求的参数中,获取参数名为name的值,并给name赋值

2、传递多个参数

    @RequestMapping("/m2")public String m2(String name, Integer age){return "接收到的参数name:" + name + " ;age:" + age;}

后端接收多个参数,此处是name和age,字符串类型和整形,并返回字符串

前端传过来的请求中需要带上name参数和age参数,需要名称完全一样,参数前用?与路由隔开,不同的参数间用&隔开

参数发送的顺序可以任意调换

当多个参数传值时,可以不用每个参数都传值,不传值的参数默认是null(使用包装类的前提下)

此处不用age,用Integer的原因是如果使用基本类型,必须要传值,不传会报错,所以开发时,建议使用包装类

底层逻辑:从请求的多个参数中,获取参数名为name和age的值,并给对应名称的数据赋值

3、传递对象

    @RequestMapping("/m3")public String m3(Person person){return "接收到的参数person:" + person.toString();}

Person中有以下属性

 

后端接收一个对象或对象中的属性,此处是Person,并返回字符串

前端传过来的请求中可以依然用传递参数的方式,参数需要是对象中的属性名,需要名称完全一样,参数前用?与路由隔开,不同的参数间用&隔开

可以看到,用传递多个参数的方式依然可以,后端会自动读取参数中对象中名称一样的属性,对于没有的属性则不理睬

底层逻辑:从请求的参数中,自动识别与对象属性名一致的参数,并给对象中对应名称的属性赋值

4、后端参数重命名

应用场景:传过来的参数名称不方便改变,但又想改变后端中自己使用的参数名称,不想用传过来的参数名称

    @RequestMapping("/m4")public String m4(@RequestParam(value = "name", required = false) String username){return "接收到的参数name:" + username;}

后端:此刻用了@RequestParam后,前端传过来的参数为name(value中的值),会自动赋值给username

前端:参数名需要与value中的值保持一致

注意:如果进行了重命名,就必须要使用@RequestParam注解里的名字

底层逻辑:此处只是运用了@RequestParam注解实现了参数重命名,传递参数的逻辑与前面几种方式一致

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

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

相关文章

【JavaScript】深入讲解浏览器渲染原理

一. 浏览器是如何渲染页面的? 当浏览器的网络线程收到 HTML 文档后,会产生一个渲染任务,并将其传递给渲染主线程的消息队列。 在事件循环机制的作用下,渲染主线程取出消息队列中的渲染任务,开启渲染流程。 渲染&…

Gartner 2024年十大战略技术趋势,谈谈持续威胁暴露管理(CTEM)

科技云报道原创。 近日,Gartner发布了2024年企业机构需要探索的10大战略技术趋势。 这份连年更新的报告,是Gartner分析其在未来三年内如何影响企业的战略,以指导关键岗位决策者尽早了解探索并满足各自的业务需求。 2024年十大重要战略趋势…

【数据结构】String类对象的创建与字符串常量池的“神秘交易”

作者主页:paper jie_博客 本文作者:大家好,我是paper jie,感谢你阅读本文,欢迎一建三连哦。 本文录入于《JAVA数据结构》专栏,本专栏是针对于大学生,编程小白精心打造的。笔者用重金(时间和精力…

Tomcat+nginx负载均衡和动静分离

Nginx实现负载均衡和动静分离的原理 Nginx实现负载均衡是通过反向代理实现Nginx服务器作为前端,Tomcat服务器作为后端,web页面请求由Nginx服务来进行转发。 但是不是把所有的web请求转发,而是将静态页面请求Ncinx服务器自己来处理&#xff0c…

vmware安装 Rocky9(自定义分区安装)

一、下载镜像 访问官网,下载dvd的镜像 Download Rocky | Rocky Linuxhttps://rockylinux.org/download 二、新建vmware虚拟机 1、vmware尽量选择vmware17 2、下一步 3、稍后安装 4、选择系统类型:red hat9 5、自定义安装位置 6、根据电脑配置&#…

Windows 95 的辉煌诞生历史

1992 年 2 月,Windows 3.1 的研发即将结束,而 Windows 团队正忙得不亦乐乎地计划他们的下一盘大棋。到了 3 月 5 日,他们终于悠哉悠哉地敲定了战略大计:横扫桌面、笔记本、移动设备以及时髦的触控笔设备。至于那些高大上的服务器和…

自然语言处理---Transformer机制详解之GPT2模型介绍

1 GPT2的架构 从模型架构上看, GPT2并没有特别新颖的架构, 它和只带有解码器模块的Transformer很像. 所谓语言模型, 作用就是根据已有句子的一部分, 来预测下一个单词会是什么. 现实应用中大家最熟悉的一个语言模型应用, 就是智能手机上的输入法, 它可以根据当前输入的内容智…

什么是全链路压测?

随着互联网技术的发展和普及,越来越多的互联网公司开始重视性能压测,并将其纳入软件开发和测试的流程中。 阿里巴巴在2014 年双11 大促活动保障背景下提出了全链路压测技术,能更好的保障系统可用性和稳定性。 什么是全链路压测?…

hello react

react中文官网 一、什么是react React是一个由Facebook开源的JavaScript库,用于构建用户界面。它基于组件化的思想,将界面拆分成多个独立的、可复用的组件,并通过组件之间的交互构建整个用户界面。React使用虚拟DOM(Virtual DOM…

成都瀚网科技有限公司:抖音小店选品策略引领电商潮流

在抖音小店日益繁荣的电商环境中,选品显得尤为重要。一个好的产品可以带来稳定的流量和可观的销售额,而一个错误的选择可能导致店铺的运营陷入困境。那么,如何在抖音小店进行正确的选品呢?本文将为你揭示抖音小店选品的秘密通道。…

Jmeter性能 —— 事务控制器

统计性能测试结果一定会关注TPS,TPS表示:每秒处理事务数,JMeter默认每个事务对应一个请求。我们可以用逻辑控制器中的事务控制器将多个请求统计为一个事务。 1、添加事务控制器 2、事务控制器参数说明 Generate parent sample:如…

无纸化办公小程序数据交互、wxs的使用

前言 很多同志们再写小程序的过程中,不知道该怎么发起HTTP请求到后端,在Web环境中发起HTTPS请求是很常见的,但是微信小程序是腾讯内部的产品,不能直接打开一个外部的链接。例如,在微信小程序中不能直接打开www.taobao…

Python数据挖掘 | 升级版自动查核酸

📕作者简介:热爱跑步的恒川,致力于C/C、Java、Python等多编程语言,热爱跑步,喜爱音乐的一位博主。 📗本文收录于恒川的日常汇报系列,大家有兴趣的可以看一看 📘相关专栏C语言初阶、C…

经典卷积神经网络 - LeNet

该模型用于手写的数字识别。 LeNet模型包含了多个卷积层和池化层,以及最后的全连接层用于分类。其中,每个卷积层都包含了一个卷积操作和一个非线性激活函数,用于提取输入图像的特征。池化层则用于缩小特征图的尺寸,减少模型参数和…

【IO】JavaIO流:字节流、字符流、缓冲流、转换流、序列化流等

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ IO流 Java IO1. 认识IO2. FileOutputStream(写…

【python】--python环境安装及配置

目录 一、python开发环境部署1、下载安装Miniconda2、python环境3、进入或退出python环境4、对应python环境安装工具/库5、进入pyhton环境,查看已安装的工具/库6、安装pycharm专业版7、pycharm创建项目并关联python版本环境 一、python开发环境部署 要安装一个pyth…

实战SRC

附言:从补天的公益src公司中选中了幸运儿。 1. 通过hunter鹰图平台搜索公司的相关资产,发现其采用了华途应用安全网关。 2.访问相关地址,尝试使用弱口令登录,发现直接利用admin/admin就登录了,可以看到后台的相关日志…

【项目实战】日志系统

目录 前言 整体架构 工具类的实现 日期类 文件类 判断文件存在 获取文件路径 创建目录 日志等级的规划 日志信息模块 消息格式化模块 格式化组件 抽象基类 派生子类 日期格式化子类 其他内容格式化子类 格式化类 根据字符创建不同对象 格式化字符串的解析 …

先后在影酷/传祺E9/昊铂GT量产交付,这家ADAS厂商何以领跑

智能泊车赛道正在迎来黄金增长期,以魔视智能为代表的玩家正在驶入大规模量产的“快车道”。 继在广汽传祺影酷、广汽传祺 E9实现规模化量产交付之后,魔视智能的Magic Parking智能泊车系列解决方案再度在广汽埃安旗下高端智能轿跑——昊铂GT上面实现量产…

Go 代码包与引入:如何有效组织您的项目

一、引言 在软件开发中,代码的组织和管理是成功项目实施的基础之一。特别是在构建大型、可扩展和可维护的应用程序时,这一点尤为重要。Go语言为这一需求提供了一个强大而灵活的工具:代码包(Packages)。代码包不仅允许…