【springmvc】@RequestParam详解以及加与不加的区别

一次SpringBoot版本升级,引发的血案 最近项目组升级了SpringBoot版本,由之前的2.0.4升级到最新版本2.7.5,却引出了一个大Bug。到底是怎么回事呢? 阅读详情

转自:https://blog.youkuaiyun.com/a447332241/article/details/76714148/

 以前写controller层的时候都是默认带上 @RequestParam 的, 今天发现不加@RequestParam 也能接收到参数


下面我们来区分一下加与不加的区别

这里有两种写法


[html] view plain copy
  1. @RequestMapping("/list")  
  2.     public String test(@RequestParam  Long parentId) {  
  3.           
  4.     }  


[html] view plain copy
  1. @RequestMapping("/list")  
  2.     public String test( Long parentId) {  
  3.           
  4.     }  

第一种必须带有参数,也就是说你直接输入localhost:8080/list 会报错 不会执行方法 只能输入localhost:8080/list?parentId=? 才能执行相应的方法

第二种 可带参数也可不带参数  就是说你输入  localhost:8080/list  以及 localhost:8080/list?parentId=?  方法都能执行


当然你也可以设置 @RequestParam 里面的required为false(默认为true 代表必须带参数) 这样就跟第二种是一样的了

如下:

[html] view plain copy
  1. @RequestMapping("/list")  
  2.     public String test(@RequestParam(required=false)  Long parentId) {  
  3.         .....  
  4.     }  
  5.       


当然你还可以设置里面的defaultValue的属性

如下:

[html] view plain copy
  1. @RequestMapping("/list")  
  2.     public String test(@RequestParam(defaultValue="0")  Long parentId) {  
  3.     ...   
  4.     }  
  5.       
  6.   
  7.       
  8.       
这样在地址里面也可以不带参数,如果带了参数会接收,不带参数会默认为0


里面还有一个value属性也讲一下, 前面所有的方法 传入的参数必须为parentId 才能接收到值

但是如果你加了value属性

[html] view plain copy
  1. @RequestMapping("/list")  
  2.     public String test(@RequestParam(value="id")  Long parentId) {  
  3.         ..  
  4.     }  
  5.       
  6.   
  7.       

这样会用id 代替parentId  也就是说你地址里面传入的参数名称为id localhost:8080/list?id=? 这种
SpringMVC控制器方法获取参数时@RequestParam注解加与不加的区别 问题 在使用SpringMVC时获取参数时,加与不加@RequestParam都会自动传入参数值,那加与不加的区别是什么? 测试 @GetMapping("test1") public String test1(String s){ return "参数:"+s; } @GetMapping("test2") public String test2(@RequestParam String s){ return "参数:"+s; } 阅读详情

相关推荐

Qt+OpenGL+Cesium三件套:打造高性能3D GIS界面的5个关键技巧

本文深入探讨了如何利用Qt、OpenGL与Cesium三件套打造高性能3D GIS界面的5个核心技巧。内容涵盖多线程渲染架构设计、OpenGL状态管理与批处理优化、内存与显存高效管理、Qt UI与3D场景深度集成,以及跨平台部署与性能调优实战,旨在帮助开发者解决海量3D Tiles数据渲染的性能瓶颈,实现流畅的交互体验。

t8u9v0的博客 548

@RequestParam的加与不加的作用

@RequestParam的加与不加的作用

weixin_66709611的博客 3532

在unity urp项目中 通过图片创建材质(透明光晕)

unity中通过图片创造材质(urp管道)

m0_49721415的博客 1537

@RequestParam和@RequestBody的使用和区别&&使用@RequestParam和不使用@RequestParam的区别

RequestParam的使用 @RequestParam主要用于将请求参数区域的数据映射到控制层方法的参数上 首先我们需要知道@RequestParam注解主要有哪些参数 value:请求中传入参数的名称,如果不设置后台接口的value值,则会默认为该变量名。比如上图中第一个参数如果不设置value=“page”,则前端传入的参数名必须为pageNum,否则在后台接口中pageNum将接收不到对应的数据 required:该参数是否为必传项。默认是true,表示请求中一定要传入对应的参数,否则会报

summer_style的博客 2800

浅谈向量检索

文章目录浅谈向量检索背景什么是向量什么是向量检索距离度量检索方法ANN的基本思路举个容易理解栗子举个正常的例子具体算法树方法KD-TreeAnnoyHash方法LSH 算法矢量量化方法乘积量化码本的建立码字搜索算法倒排乘积量化临近图方法HNSW 算法朴素想法Delaunay算法NSW 主要思想NSW构图NSW查找参考 浅谈向量检索 背景 索引一直被认为是检索引擎最重要的组成部分,之所以数据库能够快速的查询出来结果。系统设计中很多常见的多种数据结构都是为了快速命中索引设计的, 比如 红黑树、跳跃表、倒排索引、

qq_42828391的博客 6552

SystemC实战:用C++搞芯片建模的5个典型场景(含代码示例)

本文通过五个典型实战场景,详细介绍了如何使用SystemC这一基于C++的硬件建模库进行芯片设计与系统级建模。内容涵盖从基础并发模块构建、事务级总线建模、跨时钟域验证,到与ModelSim协同仿真及多核系统性能探索,并提供了完整的代码示例,帮助软件工程师利用熟悉的C++工具链高效参与硬件架构设计与验证。

weixin_29191761的博客 314

springcloud中@RequetParam 如果没有value则报错

1、springCloud版本: 2、解析代码: /* * Copyright 2013-2019 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of th

DJYDFT2831djydft的专栏 753

U盘 未知USB设备 设定地址失败 由于该设备有问题Windows 已将其停止(代码 43) 终极解决方案(做过系统装机盘而无法解决的必看)

U盘由于该设备有问题Windows 已将其停止(代码 43) 终极解决方案 我们在使用U盘的时候偶尔会碰到下列情况 一般是因为传输数据的过程中,死机或未响应直接断点或拔掉设备导致的,U盘再次插上之后出现设定地址失败。无法再次读取设备的数据。 解决方案: 首先请确认出现该情况不是因为你摔了U盘或接口处产生断裂这种物理损伤导致的!!! 首先请确认出现该情况不是因为你摔了U盘或接口处产生断裂这种物理损...

qq_39123987的博客 13万+

SpringMVC 注解 @RequestParam、@PathVariable、@RequestBody

目录 @SuppressWarnings 取消警告 @RequestParam 请求参数 @PathVariable 路径变量 @RequestBody 请求正文参数 @SuppressWarnings 取消警告 1、java.lang.SuppressWarnings 注解主要用在取消一些编译器产生的警告对代码左侧行列的遮挡,比如这会挡住断点调试时打的断点。 2、通过源码可知 @S...

蚩尤后裔-汪茂雄 3995

081、空间降噪(Spatial Denoise)实战:双边滤波、非局部均值与BM3D在ISP中的调优

调参时,别只看PSNR/SSIM。找几个典型场景(夜景、人像、文字、天空),在真实设备上肉眼对比。我见过PSNR涨了2dB但图像看起来更差的案例——因为PSNR不惩罚纹理丢失。空间降噪这块,理论说再多,不如动手调一次。下次遇到噪点问题,先别急着上BM3D,试试双边滤波的自适应参数,说不定有惊喜。

zzfmlxs的博客 42

AI应用架构师进阶:智能控制系统架构的多Agent设计

本文将从“AI应用架构师”的视角,系统讲解智能控制系统中多Agent架构的设计方法。理解多Agent系统的核心特性与在智能控制场景中的优势;掌握多Agent架构的设计流程:从需求分析到角色划分、通信设计、决策实现;通过实战案例(智能家居控制场景),手把手带你落地一个多Agent智能控制系统;探讨进阶话题:动态Agent组织、安全性设计、与大语言模型(LLM)的融合等。在多Agent系统中,Agent(智能体)是具备自主决策能力的最小执行单元。

小程序开发 1085

SpringMVC注解@RequestParam全面解析____ 注解@RequestParam如何使用加与不加的区别

SpringMVC注解@RequestParam全面解析 在此之前,写项目一直用的是@RequestParam(value=“aa” required=false)这个注解,但是并不知道它的意思。现在懂了,特来记录下。 1、可以对传入参数指定参数名 1 @RequestParam String inputStr 2 // 下面的对传入参数指定为aa,如果前端不传aa参数名,会报错 3 @RequestParam(value="aa") String inputStr 2、可以通过require

qq_43842093的博客 2449

MATLAB - ROS 2 工具箱入门教程

ROS 工具箱提供了一个连接 MATLAB® 和 Simulink® 与机器人操作系统(ROS 和 ROS 2)的接口。利用该工具箱,您可以设计 ROS 节点网络,并将 MATLAB 或 Simulink 生成的 ROS 节点与现有的 ROS 网络相结合。工具箱包括 MATLAB 函数和 Simulink 块,可通过记录、导入和回放 rosbag 文件来可视化和分析 ROS 数据。您还可以连接到实时 ROS 网络,访问 ROS 消息。

机器人控制与仿真应用 3067

@RequestParam注解,加与不加的区别

@RequestParam注解,加与不加的区别 @RequestParam 将 请求参数 绑定到 控制器方法参数 上 SpringMVC提供的接收普通参数的注解 源码: @Target({ElementType.PARAMETER}) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface RequestParam { @AliasFor("name") String value() default ""; ​ @

Z2Min_ 1317

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

@RequestParam的应用场景即用与不用的区别

引自:https://jingyan.baidu.com/article/546ae185c816641148f28c66.html springmvc为我们提供了多个注解来处理入参和返回值,@RequestParam就是用来处理入参的,但可能你会奇怪,平时不使用这个参数也可以获取到参数呀,确实加与不加都可以获取参数,但还是有区别的,下面就来看下如何使用和区分 为演示效果,首先需要创建一...

沈行的博客 3367

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

@requestBody 与@requestparam;@requestBody的加与不加的区别。

(一)首先说明xia @requestBody与@requestParam的区别 spring的RequestParam注解接收的参数是来自于requestHeader中,即请求头。都是用来获取请求路径(url )中的动态参数。也就是在url中,格式为xxx?username=123&password=456。功能与@pathvarible。 RequestBody注解接收的参数则...

jiashanshan521的博客 1万+

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

@RequestBody的加与不加的区别

一)首先说明xia @requestBody与@requestParam的区别 spring的RequestParam注解接收的参数是来自于requestHeader中,即请求头。都是用来获取请求路径(url )中的动态参数。也就是在url中,格式为xxx?username=123&password=456。功能与@pathvarible。 RequestBody注解接收的参数则是来自于requestBody中,即请求体中。 知识点: (二)Content-Type,内容类型,一般是指网页中存在的C

小白爱学习的博客 3809
上一篇: JSP中EL表达式的用法详解(必看篇)
下一篇: @PathVariable @responsebody @RequestParam
周末去看海
博客等级 码龄9年 50粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值