springmvc不同格式的参数解析

参数解析

application/x-www-form-urlencoded格式

这种格式就是传统的表单提交格式,就是一个个的键值对,会进行url编码,使用springmvc接收时使用@RequestParam来进行接收,与传入的字段一一对应,此时使用的参数处理器是RequestParamMapMethodArgumentResolver;当然也可以将这些参数组装为一个对象,此时入参为对象,不需要注解进行标注,此时使用的参数处理器是ServletModelAttributeMethodProcessor,把HttpServletRequest中的表单参数封装到MutablePropertyValues实例中,再通过参数类型实例化,反射匹配属性进行值的填充

application/json格式

现在使用这种格式的比较多,报文会在请求体内,而不是拼接到地址中,使用springmvc接收时使用@RequestBody注解标注,使用到的参数处理器为RequestResponseBodyMethodProcessor,默认会用到MappingJackson2HttpMessageConverter进行参数类型的转换,底层依赖到Jackson相关的包

url参数

由于springmvc支持rest风格的请求,所以可能会存在/user/{userId}格式的uri,此时{}是占位符,使用@PathVariable注解进行标注,对应的参数处理器为PathVariableMethodArgumentResolver

文件上传

文件上传使用的是form-data格式的,此时springmvc是使用@RequestPart注解来标注MultipartFile对象进行接收的,参数处理器用到的是RequestPartMethodArgumentResolver;也可以使用@RequestParam注解标注MultipartFile对象,或者仅使用MultipartFile对象来接收,使用的是RequestParamMethodArgumentResolver进行解析处理的

https://zhhll.icu/2021/框架/springmvc/基础/10.参数解析/

本文由mdnice多平台发布

相关推荐
试剂小课堂 Pro2 分钟前
Ald-PEG-Ald:丙醛与聚乙二醇两端连接的对称分子
java·c语言·c++·python·ffmpeg
独自破碎E2 分钟前
【双指针】接雨水
java·开发语言
AllData公司负责人3 分钟前
【亲测好用】数据平台能力演示
java·数据库·c++·开源
0和1的舞者5 分钟前
技术优化手册:从工具类到 MyBatis 配置与业务逻辑
java·后端·学习·开发·知识
若鱼19196 分钟前
SpringBoot4.0新特性-Resilience之并发限制
java·spring
砚边数影13 分钟前
逻辑回归实战(二):Java + DL4J 实现模型,评估指标(准确率/召回率)计算
java·数据库·算法·机器学习·逻辑回归·金仓数据库
Cher ~14 分钟前
【数据结构】hash表(unordered_map)
java·数据结构·c++·算法·哈希算法
zfj32121 分钟前
好书分享:《两周自制脚本语言》-用java实现一个脚本语言
java·开发语言·python·编译原理
索荣荣33 分钟前
Java反射:从入门到实战的终极指南
java·开发语言
Leo6553537 分钟前
easyExcel 的动态列导出把文本转为数值格式,可以进行函数计算
java