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

controller中的参数注解@Param @RequestParam和@RequestBody的不同

现在controller中有个方法:(LoginUserRequest是一个用户类对象)

    @PostMapping("/test/phone")public Result validPhone(LoginUserRequest loginUserRequest) {return Result.success(loginUserRequest);}

现在讨论@Param("loginUserRequest") @RequestParam("loginUserRequest") 和@RequestBody

三个注解的区别,测试统一用PostMan测试,在博客最后进行总结

一、@Param

@Param 修饰对象和变量测试一样

    @PostMapping("/test/phone")public Result validPhone(@Param("loginUserRequest") LoginUserRequest loginUserRequest) {return Result.success(loginUserRequest);}

 使用参数传值:

使用json传值:

二、@RequestParam

这里使用 @RequestParam 和@RequestParam("loginUserRequest")效果一样

    @PostMapping("/test/phone")public Result validPhone(@RequestParam("loginUserRequest") LoginUserRequest loginUserRequest) {return Result.success(loginUserRequest);}

使用参数传值:

使用json传值:

但是我们在参数传值时设置一个变量loginUserRequest,显示参数转换错误,后端把String转为LoginUserRequest对象报错

那我们在json传值时设置一个变量loginUserRequest呢?没报错,但是还是找不到参数

三、@RequestBody

    @PostMapping("/test/phone")public Result validPhone(@RequestBody LoginUserRequest loginUserRequest) {return Result.success(loginUserRequest);}

使用参数传值:

使用json传值:

如果@RequestBody 是修饰 String phoneNumber 呢?

    @PostMapping("/test/phone")public Result validPhoneNumber(@RequestBody String phoneNumber) {System.out.println("phone = " + phoneNumber);return Result.success(phoneNumber);}

使用参数传值和上面的结果一样

使用json传值,会把phoneNumber当做对象

总结:

1.@Param可用来修饰对象和变量,但只能用参数传值,不能用json传值。

 2.@RequestParam用来修饰变量,不能修饰对象,只能用参数传值。

2.@RequestBody 修饰的对象,不能修饰变量,只能使用json传值。

此为本人总结,如有错误,恳请指正。 

相关文章:

controller中的参数注解@Param @RequestParam和@RequestBody的不同

现在controller中有个方法:(LoginUserRequest是一个用户类对象) PostMapping("/test/phone")public Result validPhone(LoginUserRequest loginUserRequest) {return Result.success(loginUserRequest);}现在讨论Param("login…...

手搓人工智能-最优化算法(1)最速梯度下降法,及推导过程

“Men pass away, but their deeds abide.” 人终有一死,但是他们的业绩将永存。 ——奥古斯坦-路易柯西 目录 前言 简单函数求极值 复杂函数梯度法求极值 泰勒展开 梯度,Nabla算子 Cauchy-Schwarz不等式 梯度下降算法 算法流程 梯度下降法…...

多目标优化算法——多目标粒子群优化算法(MOPSO)

Handling Multiple Objectives With Particle Swarm Optimization(多目标粒子群优化算法) 一、摘要: 本文提出了一种将帕累托优势引入粒子群优化算法的方法,使该算法能够处理具有多个目标函数的问题。与目前其他将粒子群算法扩展…...

Swift——自动引用计数ARC

ARC ARC是swift使用的一种管理应用程序内存的机制,对于C语言我们知道,当我们申请一块空间,通常需要手动释放,不然会造成空间浪费,而有了ARC机制,你无需考虑内存的管理,因为ARC会在类的实例不再…...

【Quarkus】基于CDI和拦截器实现AOP功能(进阶版)

Quarkus 基于CDI和拦截器实现AOP功能(进阶版) 拦截器的属性成员拦截器的重复使用基于属性成员和重复使用的拦截器的发消息案例 本节来了解一下拦截器高级特性(拦截器的重复使用和属性成员),官网说明:https:…...

【踩坑日记】【教程】如何在ubuntu服务器上配置公钥登录以及bug解决

前言 在日常开发和运维中,为了提高服务器登录的安全性,我们通常会选择使用 SSH 密钥认证 来替代传统的密码登录。然而,在配置 SSH 公钥登录的过程中,可能会遇到各种坑和 Bug。本文将从零开始,手把手教你如何在 Ubuntu…...

insmod一个ko提供基础函数供后insmod的ko使用的方法

一、背景 在内核模块开发时,多个不同的内核模块,有时候可能需要都共用一些公共的函数,比如申请一些平台性的公共资源。但是,这些公共的函数又不方便去加入到内核镜像里,这时候就需要把这些各个内核模块需要用到的一些…...

七、传统循环神经网络(RNN)

传统循环神经网络 RNN 前言一、RNN 是什么?1.1 RNN 的结构1.2 结构举例 二、RNN 模型的分类2.1 按照 输入跟输出 的结构分类2.2 按照 内部结构 分类 三、传统 RNN 模型3.1 RNN内部结构图3.2 内部计算公式3.3 其中 tanh 激活函数的作用3.4 传统RNN优缺点 四、代码演示…...

LeetCode:19.删除链表倒数第N个节点

跟着carl学算法,本系列博客仅做个人记录,建议大家都去看carl本人的博客,写的真的很好的! 代码随想录 LeetCode:19.删除链表倒数第N个节点 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表…...

【RISC-V CPU debug 专栏 2 -- Debug Module (DM), non-ISA】

文章目录 调试模块(DM)功能必须支持的功能可选支持的功能兼容性要求规模限制Debug Module Interface (DMI)总线类型地址与操作地址空间控制机制Debug Module Interface Signals请求信号响应信号信号流程Reset Control复位控制方法全局复位 (`ndmreset`)Hart 复位 (`hartreset…...

单片机学习笔记 11. 外部中断

更多单片机学习笔记:单片机学习笔记 1. 点亮一个LED灯单片机学习笔记 2. LED灯闪烁单片机学习笔记 3. LED灯流水灯单片机学习笔记 4. 蜂鸣器滴~滴~滴~单片机学习笔记 5. 数码管静态显示单片机学习笔记 6. 数码管动态显示单片机学习笔记 7. 独立键盘单片机学习笔记 8…...

基于stm32的智能教室管理系统/智能家居系统

基于stm32的智能教室管理系统/智能家居系统 持续更新,欢迎关注!!! ** 基于stm32的智能教室管理系统/智能家居系统 ** 目前,物联网已广泛应用在我们的生活中。智慧校园是将校园中的生活、学习、工作等相关的资源联系在一起,实现管理的智能化…...

基于 Qt 和 GStreamer 的环境中构建播放器

一、功能与需求分析 功能描述 播放本地视频文件(如 MP4、MKV)。 支持基本控制功能(播放、暂停、停止、跳转)。 提供音量调节功能。 在 Windows 环境下使用 Visual Studio 2022 编译。 技术选型 Qt:用于构建用户界面。 GStreamer:负责视频解码和播放。 Visual Studio 202…...

windows docker 入门

这个教程将指导你如何安装Docker、运行第一个容器以及理解一些基本概念。 第一步:安装Docker Desktop for Windows 系统要求: Windows 10 64位版本(专业版、企业版或教育版)。启用Hyper-V和Windows Subsystem for Linux (WSL 2)。…...

baomidou Mabatis plus引入异常

1 主要异常信息 Error creating bean with name dataSource 但是有个重要提示 dynamic-datasource Please check the setting of primary 解决方法&#xff1a; <dependency><groupId>com.baomidou</groupId><artifactId>dynamic-datasource-spring…...

深度学习中的正则化模型是什么意思?

一、定义 在深度学习中&#xff0c;正则化是一种用于防止过拟合的技术。过拟合是指模型在训练数据上表现非常好&#xff0c;但在新的、未见过的数据&#xff08;测试数据&#xff09;上表现很差的情况。正则化模型就是通过在损失函数中添加额外的项来约束模型的复杂度&#xf…...

修改IDEA配置导致Spring Boot项目读取application.properties中文乱码问题

之前很多配置都是放在nacos里面&#xff0c;然后这次同事有个配置写在application.properties中&#xff0c;这个配置含有中文&#xff0c;启动之后发现拿到的中文值会乱码&#xff0c;然后就帮忙看了一下问题。 排查问题 经过不停的百度、排查发现&#xff0c;spring读取app…...

Flink 热存储维表 使用 Guava Cache 减轻访问压力

目录 背景 Guava Cache 简介 实现方案 1. 项目依赖 2. Guava Cache 集成到 Flink (1) 定义 Cache (2) 使用 Cache 优化维表查询 3. 应用运行效果 (1) 维表查询逻辑优化 (2) 减少存储压力 Guava Cache 配置优化 总结 背景 在实时计算场景中&#xff0c;Flink 应用中…...

深入探索SenseVoiceSmall:高效多语言语音识别与处理模型

引言 随着人工智能技术的飞速发展&#xff0c;语音识别技术已经广泛应用于智能助手、客户服务、智能家居等多个领域。然而&#xff0c;现有的语音识别模型往往存在资源消耗大、多语言支持不足等问题。今天&#xff0c;我们要介绍的是来自ModelScope平台的SenseVoiceSmall模型&…...

Flink--API 之Transformation-转换算子的使用解析

目录 一、常用转换算子详解 &#xff08;一&#xff09;map 算子 &#xff08;二&#xff09;flatMap 算子 &#xff08;三&#xff09;filter 算子 &#xff08;四&#xff09;keyBy 算子 元组类型 POJO &#xff08;五&#xff09;reduce 算子 二、合并与连接操作 …...

iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版​分享

平时用 iPhone 的时候&#xff0c;难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵&#xff0c;或者买了二手 iPhone 却被原来的 iCloud 账号锁住&#xff0c;这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...

【第二十一章 SDIO接口(SDIO)】

第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...

连锁超市冷库节能解决方案:如何实现超市降本增效

在连锁超市冷库运营中&#xff0c;高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术&#xff0c;实现年省电费15%-60%&#xff0c;且不改动原有装备、安装快捷、…...

STM32F4基本定时器使用和原理详解

STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序

一、开发环境准备 ​​工具安装​​&#xff1a; 下载安装DevEco Studio 4.0&#xff08;支持HarmonyOS 5&#xff09;配置HarmonyOS SDK 5.0确保Node.js版本≥14 ​​项目初始化​​&#xff1a; ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)

宇树机器人多姿态起立控制强化学习框架论文解析 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架&#xff08;一&#xff09; 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...

04-初识css

一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战

在现代战争中&#xff0c;电磁频谱已成为继陆、海、空、天之后的 “第五维战场”&#xff0c;雷达作为电磁频谱领域的关键装备&#xff0c;其干扰与抗干扰能力的较量&#xff0c;直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器&#xff0c;凭借数字射…...

【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习

禁止商业或二改转载&#xff0c;仅供自学使用&#xff0c;侵权必究&#xff0c;如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...

华为OD机考-机房布局

import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...