Spring MVC 五种类型参数传递
创始人
2025-05-29 03:39:31
0

笔记来自哔哩哔哩里的Spring MVC教程,只记录关键点。

1.普通参数

2.POJO类型参数

3.嵌套POJO类型参数

4.数组类型参数

5.集合类型参数

一 普通参数
普通参数:url地址传参,地址参数名与形参变量名相同,定义形参即可接收参数。

如果形参与地址参数名不一致,则需增加 @RequestPaam 注解,如下:

@RequestMapping("/commonParamDifferentName")
@ResponseBody
public String commonParamDifferentName(@RequestPaam("name") String userName , int age){System.out.println("普通参数传递 userName ==> "+userName);System.out.println("普通参数传递 age ==> "+age);return "{'module':'common param different name'}";
}

 二、POJO数据类型

简单数据类型一般处理的是参数个数比较少的请求,如果参数比较多,那么后台接收参数的时候就比较复杂,这个时候我们可以考虑使用POJO数据类型。

POJO参数:请求参数名与形参对象属性名相同,定义POJO类型形参即可接收参数。

此时需要使用前面准备好的POJO类,先来看下User

public class User {private String name;private int age;
}

 后台接收参数: 

//POJO参数:请求参数与形参对象中的属性对应即可完成参数传递
@RequestMapping("/pojoParam")
@ResponseBody
public String pojoParam(User user){System.out.println("pojo参数传递 user ==> "+user);return "{'module':'pojo param'}";
}

三、嵌套POJO类型参数

如果POJO对象中嵌套了其他的POJO类,如:

public class Address {private String province;private String city;
}
public class User {private String name;private int age;private Address address;
}

 嵌套POJO参数:请求参数名与形参对象属性名相同,按照对象层次结构关系即可接收嵌套POJO属性参数

 后台接收参数:  

//POJO参数:请求参数与形参对象中的属性对应即可完成参数传递
@RequestMapping("/pojoParam")
@ResponseBody
public String pojoParam(User user){System.out.println("pojo参数传递 user ==> "+user);return "{'module':'pojo param'}";
}

四、数组类型参数

举个简单的例子,如果前端需要获取用户的爱好,爱好绝大多数情况下都是多个,如何发送请求数据和接收数据呢?

数组参数:请求参数名与形参对象属性名相同且请求参数为多个,定义数组类型即可接收参数

发送请求和参数:

 后台接收参数:  

//数组参数:同名请求参数可以直接映射到对应名称的形参数组对象中
@RequestMapping("/arrayParam")
@ResponseBody
public String arrayParam(String[] likes){System.out.println("数组参数传递 likes ==> "+ Arrays.toString(likes));return "{'module':'array param'}";
}

五、集合类型参数

数组能接收多个值,那么集合是否也可以实现这个功能呢?

发送请求和参数:

 后台接收参数:  

//集合参数:同名请求参数可以使用@RequestParam注解映射到对应名称的集合对象中作为数据
@RequestMapping("/listParam")
@ResponseBody
public String listParam(@RequestParam List likes){System.out.println("集合参数传递 likes ==> "+ likes);return "{'module':'list param'}";
}

注意:这里使用到 @RequestParam 注解。

知识点1:@RequestParam

名称@RequestParam
类型形参注解
位置SpringMVC控制器方法形参定义前面
作用绑定请求参数与处理器方法形参间的关系
相关参数required:是否为必传参数 defaultValue:参数默认值

相关内容

热门资讯

为什么做IT的容易猝死 为什么做IT的容易猝死it行业用脑的时间占一天的大多数,因为长期的精神紧张,对于大脑的磨损也很大。不...
雨是怎样形成的? 雨是怎样形成的?我已经知道云由许水滴冰晶组雨滴雪花由增变水滴冰晶云内增变呢?  水云云滴都水滴主要靠...
滑动窗口编程题集合(leetc... 滑动窗口是双指针的一种应用,形象点说就是维护一个窗口,在窗口滑动的过程中...
谁有以“我爱文学”的电子手抄报... 谁有以“我爱文学”的电子手抄报,一定要有关于主题的内容!读书的乐趣 读书,对我来说是一种享受,我想这...
铁棒磨成针的译文是什么? 铁棒磨成针的译文是什么?寓言故事 铁杵磨针 (王明清·日记故事) 李白,少读书,未成,弃去,道逢...
用小鸡,小狗,小白兔和小猫写个... 用小鸡,小狗,小白兔和小猫写个故事  有一天早上,一只小鸡在外面郊游,在途中,它看见一只小狗。于是它...
新华财经早报:5月30日 转自:新华财经•中办、国办印发文件:到2027年碳排放权、用水权交易制度基本完善 排污权交易制度建立...
什么是边缘化? 什么是边缘化?边缘化就是不再有人关注、重视,淡出、远离了人们视野,说白了就去边上凉快。在一个团体内,...
南非央行降息至7.25% 拟... 中新社约翰内斯堡5月29日电 (记者 孙翔)南非储备银行(央行)货币政策委员会29日宣布,将基准利率...
【中原计算机】润泽科技(300... (转自:中原证券研究所)投资要点:公司发布2024年报:全年实现收入43.65亿元,同比增长0.32...
自动化测试Java+Selen... 近日自动化测试在项目中开始推行,于是翻看起来,前期有篇(自...
【国元研究】每日复盘:2025... (转自:国元研究)文 |  朱定豪   黄雯瑜2025年5月29日A股三大指数全日震荡走强,计算机设...
长镜头|让阅读成为成长的光 转自:河北新闻网让阅读成为成长的光——数智化时代儿童阅读生态大家谈“蹉跎莫遣韶光老,人生唯有读书好。...
特朗普为什么要搞垮美国旅游业? 一个旅游大国的自我冷却实验背后。▲栏目 | 文旅商业评论领域 | 出境游01昨天,美国特朗普政府声称...
你认为毕业意味着什么? 你认为毕业意味着什么?毕业,就是你有另外一种身份了,也是新的开始
推荐一些像《终极一家》,《黑糖... 推荐一些像《终极一家》,《黑糖群侠传》,《萌学园之萌骑士传奇》之类的电视剧《黑糖玛奇朵》《终极一班》...
Gap首季营收同比增2%至34... (转自:观点网)观点网讯:5月30日,Gap发布业绩报告,预计关税损失最多1.5亿美元,但不会大幅提...
中国能建两月揽海内外大单293... 长江商报消息 能源建设国家队中国能建(601868.SH)再度中标重大工程。5月28日晚间,中国能建...
瞄准取代“阵风”战机,印度官宣 据俄罗斯《导报》网站5月28日报道,印度国防部发表声明称,该部门27日批准了第五代双发战斗机——“先...
美的集团获瑞银增持15.76万... .ct_hqimg {margin: 10px 0;} .hqimg_wrapper {text-a...