SpringMVC接收请求参数的方式:

接收简单变量的请求参数

直接使用简单变量作为形参进行接收(这里简单变量名称需要与接收的参数名称保持一致,否则需要加上@RequestParam注解):

细节:

1:SpringMVC会针对常见类型(八种基本类型及其包装器,String)进行自动类型转换

2:尽量使用包装类型进行参数的接受,避免接收不到参数时报错。

接收POJO类型请求参数

什么是POJO类型?

接收方法:

POJO接收对象时没有参数名必须与前端保持一致的要求,POJO只对对象内部有要求,POJO内部的变量必须要与接受的参数名保持一致

接收一组简单变量的请求参数

使用数组进行接收。这里遵循上述简单变量的接收规律。同样的,这里的数组名要与前端传来的参数名称保持一致。

能否使用集合框架作为形参?

1:对于List这样的接口,由于没有具体的实现类所以不能作为接受请求的参数,直接回抛异常

2:对于ArrayList这样的具体的实现类,类似于对象接受请求参数(pojo),spring-mvc需要通过属性名去进行参数的传递(泛型在运行时被擦除 ),而ArrayList是没有属性名的,所以这里ArrayList为空,拿不到任何参数。

使用List接收直接报服务器错误:

使用ArrayList没有接收到参数:

接收一组POJO类型的请求参数

自己构建一个对象,里面设置一个接收这样一组参数的对象,提供get,set方法。这里的核心是使接收这样一组参数的容器作为一个拥有get,set方法的属性。

不能使用集合框架作为形参的原因同上

自己构建一个对象,对象里面包含接收请求参数的ArrayList容器

请求构建(注意这里参数数组名称要与自己构建的对象中接收参数的容器的名称保持一致):

控制器:

接收单值动态参数

1:使用Map集合接收

2:必须使用(可变参数场景下必须使用@RequestParm注解,表示将参数映射到形参的集合中,否则形参的集合为空)

接收多值动态参数

使用MultiValueMap接收,底层是Map<K, List<V>>结构

相关推荐
paopaokaka_luck几秒前
美食推荐系统(协同过滤算法推荐、AI助手、HanLP中文分词、 ECharts可视化分析、菜谱学习与话题交流)
java·spring boot·mysql·tomcat·echarts
开源推荐官2 分钟前
2026 年开源商城源码选型参考:技术栈、功能与适用场景梳理
java·架构·开源
sunburn-16 分钟前
数据库操作完整教程:从基础到实战
java·数据库·mysql
文丑颜不良啊22 分钟前
LeetCode576~600题目解析
java·leetcode
Linux运维技术栈39 分钟前
CVE-2026-91403 高危漏洞预警:Java JSSE 信任链被攻破 全场景修复方案与Linux系统级彻底清理实操
java·linux·安全·jdk·信任链
秋饼1 小时前
Spring AI + MCP 工具调用可靠性实战:参数校验、权限防线与人工确认生产级落地
java·ai·技术分享·后端开发
步行cgn1 小时前
RESTful 是什么?怎么记住它?
java
随性而行3601 小时前
企业微信 Webhook 接收不到消息?网络连通性、URL 签名验签与 API 返回错误码排查指南
java·网络·人工智能·后端·微信·企业微信
薛之谦_1 小时前
JD Hotkey 项目实战:京东开源的热点探测与秒杀系统
java·安全
yuzhiboyouye1 小时前
@EnumValue和@JsonValue
java