【Java】SpringMVC参数接收(一)

1、接收单个参数

(1)直接接收参数

@RequestMapping("/hello")
@RestController
public class HelloSpring {
    @RequestMapping("/t2")
    public String t2(String name){
        return "name=" + name;
    }
}

 当没有传入参数时,返回null

(2)包装类接收

如果我们换成int,再次看看结果

@RequestMapping("/hello")
@RestController
public class HelloSpring {
    @RequestMapping("/t2")
    public String t2(String name){
        return "name=" + name;
    }
}

postman报错。报错提示我们应该使用包装类

@RequestMapping("/hello")
@RestController
public class HelloSpring {
    @RequestMapping("t4")
    public String t4(Integer age){
        return "age=" + age;
    }
}

不传参数时,返回null,不再报错 

SpringMVC接收参数时最好使用包装类

 2、多个参数

(1)直接写 

@RequestMapping("/hello")
@RestController
public class HelloSpring {
    @RequestMapping("t5")
    public String t5(String name,Integer age){
        return "name=" + name + ", " + "age=" + age;
    }
}

(2)使用类包装

UserInfo类

public class UserInfo {
    private String name;
    private int age;
    private int id;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    @Override
    public String toString() {
        return "UserInfo{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", id=" + id +
                '}';
    }
}
@RequestMapping("/hello")
@RestController
public class HelloSpring {
    @RequestMapping("t6")
    public String t6(UserInfo userInfo){
        return userInfo.toString();
    }
}

3、修改参数名 

后端接收参数的名字是跟前端保持一致的,因此我们要使用其他参数名时,则要对其进行修改

@RequestMapping("/hello")
@RestController
public class HelloSpring {
    @RequestMapping("t7")
    public String t7(@RequestParam("name")String username){
        return "name=" + username;
    }
}
//@RequestParam()中所写的是本来的参数名
//String后写的是修改后的参数名

但是如果不传入参数,就会报错

可见,上述修改参数是强制传入参数。为了能不报错,我们使参数required为false

@RequestMapping("/hello")
@RestController
public class HelloSpring {
    @RequestMapping("t7")
    public String t7(@RequestParam(value = "name",required = false)String username){
        return "name=" + username;
    }
}

这样就算不传入参数,也不会报错

4、接收数组参数

(1)直接传数组 

@RequestMapping("/hello")
@RestController
public class HelloSpring {
    @RequestMapping("t8")
    public String t8(String[] arr){
        return Arrays.toString(arr);
    }
}

(2)传集合

@RequestMapping("/hello")
@RestController
public class HelloSpring {
    @RequestMapping("t9")
    public String t9(@RequestParam(value = "list",required = false)List<String> list){
        return list.toString();
    }
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

IDEA远程服务器开发

IDEA的远程开发是在本地去操远程服务器上的代码&#xff0c;可以直接将本地代码的编译,构建,调试,运行等工作都放在远程服务器上而本地运行一个客户端远程去操作服务器上的代码,就如同我们平常写代码一样。相比于云桌面成本更低,开发效率更高。 1.首先服务器配置jdk&#xff0…

Vue2基础-Vue组件化编程

文章目录 一、模块与组件1、概念2、分类 二、非单文件组件1、创建组件2、注册组件1&#xff09;局部注册2&#xff09;全局注册 3、注意点1&#xff09;组件名2&#xff09;关于组件标签 三、VueComponent1、概念2、内置关系 三、单文件组件1、格式2、引用1&#xff09;暴露2&a…

多场景四向穿梭车系统|HEGERLS托盘四向车是如何实现自动识别存取搬运拣选功能的?

一般来说&#xff0c;物料包装形式可分为托盘和料箱&#xff0c;然而二者在仓储内部物流的作业方式却全然不同。托盘截面较大&#xff0c;则适用于成品搬运&#xff1b;而料箱相对小一些的&#xff0c;则需以原配件、零配件为主。当然所有的物流形式都离不开托盘&#xff0c;工…

Sqlite真空命令VACUUM

之前在项目中使用了sqlite数据库&#xff0c;当日志变大时&#xff0c;执行CRUD操作就会变慢 后来尝试删除7天前的记录进行优化 delete from XX_CollectData where CreateTime<2024-01-24 发现sqlite文件的大小就没有变化&#xff0c;delete命令只是逻辑删除&#xff0c;…

构建库函数雏形(以GPIO为例)

构建库函数雏形 进行外设结构体定义构建置位和复位函数进行库函数的自定义 step I&#xff1a; \textbf{step I&#xff1a;} step I&#xff1a; 对端口进行输出数据类型枚举 step II&#xff1a; \textbf{step II&#xff1a;} step II&#xff1a;对端口进行结构化描述 step…

76.Go分布式ID总览

文章目录 简介一&#xff1a;UUID二、雪花算法三&#xff1a;Leaf-snowflake四&#xff1a;数据库自增ID五&#xff1a;使用Redis实现分布式ID生成六&#xff1a;使用数据库分段&#xff08;Leaf-segment&#xff09;七 &#xff1a;增强版Leaf-segment八&#xff1a;Tinyid九&…

Linux破解密码

破解root密码&#xff08;Linux 7&#xff09; 1、先重启——e 2、Linux 16这一行 末尾加rd.break&#xff08;不要回车&#xff09;中断加载内核 3、再ctrlx启动&#xff0c;进入救援模式 4、mount -o remount&#xff0c;rw /sysroot/——&#xff08;mount挂载 o——opti…

第四十周:文献阅读+GAN

目录 摘要 Abstract 文献阅读&#xff1a;结合小波变换和主成分分析的长短期记忆神经网络深度学习在城市日需水量预测中的应用 现有问题 创新点 方法论 PCA&#xff08;主要成分分析法&#xff09; DWT&#xff08;离散小波变换&#xff09; DWT-PCA-LSTM模型 研究实…

【sgTree】自定义组件:加载el-tree树节点整棵树数据,实现增删改操作。

特性 可以自定义主键、配置选项支持预定义节点图标&#xff1a;folder文件夹|normal普通样式多个提示文本可以自定义支持动态接口增删改节点可以自定义根节点id可以设置最多允许添加的层级深度支持拖拽排序&#xff0c;排序过程还可以针对拖拽的节点深度进行自定义限制支持隐藏…

运用ETLCloud快速实现数据清洗、转换

一、数据清洗和转换的重要性及传统方式的痛点 1.数据清洗的重要性 数据清洗、转换作为数据ETL流程中的转换步骤&#xff0c;是指在数据收集、处理、存储和使用的整个过程中&#xff0c;对数据进行检查、处理和修复的过程&#xff0c;是数据分析中必不可少的环节&#xff0c;对…

人工智能技术应用:引领未来的智能时代

随着科技的日新月异&#xff0c;人工智能&#xff08;AI&#xff09;技术应用正逐渐成为我们生活中不可或缺的一部分。从智能手机中的语音助手到无人驾驶汽车&#xff0c;人工智能技术正在推动世界进入一个智能时代。本文将重点探讨人工智能技术在生活、医疗、交通等领域的应用…

Redis(秒杀活动、持久化之RDB、AOF)

目录 秒杀活动 一、测压工具jmete的使用 二、java实现秒杀活动 1、myseckillcontroller 2、先启动pos请求添加商品&#xff0c;再启动jmeter进行压测 Redis持久化 一 、Redis持久化之RDB 1.RDB是什么 2. 备份是如何执行的 3.Fork 4. RDB持久化流程 5. dump.rdb文件 6…

03-TiDB-单机上模拟部署生产环境集群

1、安装集群cluster组件 tiup cluster # 已安装的可以更新 # tiup update --self && tiup update cluster 2、修改主机sshd 服务的连接数限制 vim /etc/ssh/sshd_config # MaxSessions 20#重启 sshd 服务&#xff1a; service sshd restart 3、设置集群配置文件top…

一个监控小技巧,巧妙破解超低温冰箱难题!

在当今科技飞速发展的时代&#xff0c;超低温冰箱监控系统以其在各行各业中关键的温度控制和环境监测功能而备受关注。 超低温环境对于存储生物样本、药品和其他温度敏感物品至关重要&#xff0c;而监控系统则提供了实时、精准的环境数据&#xff0c;确保这些物品的质量和安全性…

Ubuntu apt update提示:GPG 缺少公钥解决方法

Ubuntu 运行: sudo apt update #or sudo apt-get update提示&#xff1a;GPG 缺少公钥以及404 Not Found&#xff0c;如下面所示&#xff0c;有mirror.bwbot.org 和ppa.launchpadcontent.net两个源出现问题。 好多网友用后面的方法解决 真正解决&#xff1a;gpg --verify sig:…

bash 5.2中文修订4

Compound Commands 复合命令 复合命令是 shell 编程语言的结构。每个构造都以保留字或控制运算符开始&#xff0c;并以相应的保留字或运算符终止。与复合命令关联的任何重定向&#xff08;请参阅 Redirections &#xff09;都适用于该复合命令中的所有命令&#xff0c;除非显式…

web蓝桥杯真题--14、关于你的欢迎语

介绍 营销号&#xff0c;有时候需要一些特定的欢迎语&#xff0c;但针对特定的用户&#xff0c;我们希望可以个性化一点。本题需要在项目文件中修改代码存在的问题&#xff0c;实现根据模版生成特定用户的欢迎语。 准备 本题已经内置了初始代码&#xff0c;打开实验环境&…

Unity读书系列《Unity3D游戏开发》——拓展编辑器(一)

文章目录 前言一、扩展Project视图1、右键扩展菜单&#xff08;Asset&#xff09;2、监听事件3、拓展布局 二、扩展Hierarchy视图1、拓展菜单&#xff08;GameObject&#xff09;2、拓展布局3、重写菜单 三、扩展Inspector视图1、扩展原生组件2、扩展继承组件 四、扩展Scene视图…

redis-持久化-1

Redis 提供了2个不同形式的持久化方式。 RDB&#xff08;Redis DataBase&#xff09; AOF&#xff08;Append Of File&#xff09; 一、Redis持久化之RDB 1.什么是RDB 在指定的时间间隔内将内存中的数据集快照写入磁盘&#xff0c; 也就是行话讲的Snapshot快照&#xff0c…

Windows10上通过MSYS2编译FFmpeg 6.1.1源码操作步骤

1.从github上clone代码&#xff0c;并切换到n6.1.1版本&#xff1a;clone到D:\DownLoad目录下 git clone https://github.com/FFmpeg/FFmpeg.git git checkout n6.1.1 2.安装MSYS2并编译FFmpeg源码: (1).从https://www.msys2.org/ 下载msys2-x86_64-20240113.exe &#…