0

0

Spring MVC不能正常获取参数的值的解决方法(附代码)

不言

不言

发布时间:2019-04-13 09:56:07

|

4932人浏览过

|

来源于segmentfault

转载

本篇文章给大家带来的内容是关于spring mvc不能正常获取参数的值的解决方法(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

最近在开发时遇到一个非常奇怪的问题,在tomcat8中使用Spring MVC框架,在Controller中的方法参数无法正常获取到相应的值,将tomcat版本换成7.0就解决了。

记录以下解决过程,先上图:

 

项目采用ssm架构,在这里获取不到参数password的值,在网上查询相关资料,得到以下几种解决办法,但都没有什么效果:

1.使用@RequestParam注解

给password参数加上了RequestParam注解后,调试依然无法获取到password的值,将required的值改为true,直接报错了,错误的意思就是缺少password参数,可是明明传了参数的啊,为什么还说缺少参数呢,难道是没能够识别到我传的参数?这时候考虑到可能是传参方式的问题。更改了一下传参方式,将password的值附加到url后面,就像GET请求那样传参。果然是这个原因,参数的值能够接收到了。不过使用这种传参方式,不加RequestParam注解也能够接收到参数的值。虽然这种方法能够接收接收到参数的值了,但我无法忍受POST的这种传参方式,于是接着寻找下一个方法

2.使用@RequestBody注解

AItools.fyi
AItools.fyi

找到让生活变得更轻松的最佳AI工具!

下载

RequestBody看字面意思就是请求的body,我在请求的时候确实是将参数放到body里面传递过去的,看到这个注解感觉貌似看到了希望一样,于是迫不及待的重启tomcat,然后用Postman调用,这次直接断点都不进了,直接报了一个异常:

org.springframework.http.converter.HttpMessageNotReadableException: Required request body is missing: public boolean com.scdq.manager.controller.SystemController.login(java.lang.String)

异常的大概意思就是缺少必要的请求body,通过查询相关资料,发现RequestBody并不能这么用,需用创建一个类,在类中定义相关的参数,然后再将这个类作为RequestBody注解的参数的类型

按照这种方式修改好了代码,再次重启tomcat,使用Postman调用,然后再次报了一个异常:

org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'application/x-www-form-urlencoded' not supported

 异常的大概意思就是不支持content type为application/x-www-form-urlencoded这种类型,一般通过表单提交的数据默认就是这种类型,猜测可能是RequestBody注解的原因,于是又换了一种传参方式:使用JSON格式传递数据

使用这种传参方式,果然能够接收到参数的值了,不过接收参数的方式和传参方式都变得复杂了。这个项目是我从公司拷回家继续写的,在公司的时候调试一切正常,回家就不行了,百思不得其解,同样的代码,改都没改过,为什么回到家就出问题了呢?既然代码都是一样的,运行结果不一样,那就只能说明运行的环境发生了改变。那么到底是哪里的环境不一样呢?出了这种问题,首先考虑数据库的结构,不过家里电脑数据库版本和公司电脑是一致的,而且数据都是从公司直接拷回来的,所以直接排除数据库的原因,更何况这是在Controller中接收不到参数,还没有到访问数据库的那一步,就更不可能与数据库有关系了,所以直接排除数据库的原因。由于项目是由maven构建的,相关的jar包都是maven自动去下载的,于是怀疑会不会是maven自动下载下来的jar包有问题,然后把本地仓库的jar包全部删除,让maven从新去下载,就这样重复了几次,问题依然存在,不得已只好暂时排除maven的原因。最后实在想不到其他的原因了,便开始怀疑tomcat的原因,公司tomcat是7.0版本的,家里的tomcat是8.0版本的,虽然两个tomcat版本不一致,不过并没有下意识就觉得一定是tomcat版本的原因,毕竟潜意识里认为8.0一定是7.0之后功能的升级。虽然这样想,但还是抱着死马当活马医的心态去测试,在tomcat官网下载7.0版本的压缩包,然后配好相应的环境,用postman调用,结果就是这么意外,参数值获取到了?!!! 还真是tomcat版本的原因?这感觉也太坑了吧。。。。看来盲目的追求高版本并不是一件好事【相关推荐:Java教程

 

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
如何配置Tomcat环境变量
如何配置Tomcat环境变量

配置Tomcat环境变量需要在系统中添加CATALINA_HOME变量,并将Tomcat的安装路径添加到PATH变量中。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

117

2023.10.26

idea如何集成Tomcat
idea如何集成Tomcat

idea集成Tomcat的步骤:1、添加Tomcat服务器配置;2、配置项目部署;3、运行Tomcat服务器;4、访问项目;5、注意事项;6、关闭Tomcat服务器。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

172

2024.02.23

怎么查看Tomcat源代码
怎么查看Tomcat源代码

查看Tomcat源代码的步骤:1、下载Tomcat源代码;2、在IDEA中导入Tomcat源代码;3、查看源代码;4、理解Tomcat的工作原理;5、参与社区和贡献;6、注意事项;7、持续学习和更新;8、使用工具和插件。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

98

2024.02.23

常见的tomcat漏洞有哪些
常见的tomcat漏洞有哪些

常见的tomcat漏洞有:1、跨站脚本攻击;2、跨站请求伪造;3、目录遍历漏洞;4、缓冲区溢出漏洞;5、配置漏洞;6、第三方组件漏洞。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

169

2024.02.23

tomcat日志乱码怎么解决
tomcat日志乱码怎么解决

tomcat日志乱码的解决办法:1、修改tomcat的日志编码设置;2、检查ide的编码设置;3、检查操作系统的编码设置;4、使用过滤器处理日志;5、检查外部系统的编码设置;6、检查文件编码方式等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

157

2024.02.23

weblogic和tomcat有哪些区别
weblogic和tomcat有哪些区别

weblogic和tomcat的区别:1、功能;2、性能;3、规模;4、价格;5、安全性;6、配置和管理;7、社区支持;8、集成能力;9、升级和更新;10、可靠性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

200

2024.02.23

tomcat和nginx有哪些区别
tomcat和nginx有哪些区别

tomcat和nginx的区别:1、应用领域;2、性能;3、功能;4、配置;5、安全性;6、扩展性;7、部署复杂性;8、社区支持;9、成本;10、日志管理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

244

2024.02.23

tomcat启动闪退怎么解决
tomcat启动闪退怎么解决

tomcat启动闪退的解决办法:1、检查java环境;2、检查环境变量配置;3、检查端口被占用;4、检查配置文件编码;5、检查启动时需要的配置文件;6、检查相关文件是否丢失;7、检查防火墙和杀毒软件设置。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

169

2024.02.23

Rust内存安全机制与所有权模型深度实践
Rust内存安全机制与所有权模型深度实践

本专题围绕 Rust 语言核心特性展开,深入讲解所有权机制、借用规则、生命周期管理以及智能指针等关键概念。通过系统级开发案例,分析内存安全保障原理与零成本抽象优势,并结合并发场景讲解 Send 与 Sync 特性实现机制。帮助开发者真正理解 Rust 的设计哲学,掌握在高性能与安全性并重场景中的工程实践能力。

4

2026.03.05

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Spring中文手册
Spring中文手册

共0课时 | 0.6万人学习

马士兵spring视频教程
马士兵spring视频教程

共25课时 | 9.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号