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多平台发布

相关推荐
冬天的雪20081 小时前
java内存性能优化工具Mat
java·开发语言
Le1Yu1 小时前
消息队列以及RabbitMQ的使用
java·开发语言
羚羊角uou1 小时前
【Linux】线程池
java·开发语言
阿拉-M831 小时前
IntelliJ IDEA Windows 系统高频快捷键使用手册
java·windows·intellij-idea
lingggggaaaa2 小时前
小迪安全v2023学习笔记(一百三十四讲)—— Windows权限提升篇&数据库篇&MySQL&MSSQL&Oracle&自动化项目
java·数据库·windows·笔记·学习·安全·网络安全
迦蓝叶2 小时前
JAiRouter v1.0.0 正式发布:企业级 AI 服务网关的开源解决方案
java·运维·人工智能·网关·spring·ai·开源
安卓开发者2 小时前
鸿蒙NEXT应用接入快捷栏:一键直达,提升用户体验
java·harmonyos·ux
yudiandian20142 小时前
03 Eclipse 配置 JDK 环境
java·ide·eclipse