springboot 接收前台传来的对象为空

目前了解到的共两种情况:

一、如果使用的请求方式是GET,那么@RequestBody是无法接收到参数的,显示为空。需要改成POST。

二、是参考网上的,这里直接转过来:https://blog.csdn.net/qq_32575047/article/details/81629203

楼主今天在开发后端接口的时候,遇到了一个伤脑筋的问题,看下图:

楼主用@RequestBody注解通过实体去接收前端的json值,前端json值和实体TerminalPosition一一对应的,结果发现怎么传terminalPosition这个对象都为空,很奇怪;

楼主做实验发现把@RequestBody TerminalPosition terminalPosition 改成 @RequestBody String json看看,

结果发现json果然是我传入json的字符串,于是楼主知道,不是传json过程中的错误,而是接受实体的过程中注入出现了问题;

结果定位到了TerminalPosition这个实体类中,如下图:

发现这个类使用的是@Getter和@Setter注解,省略掉了我们常用的eclipse生成的getter和setter方法,这样更加的方便;

但是接收参数为空,最终请教了同事前辈找到了问题的所在:

是因为eclipse缺少lombok.jar包和没有安装lombok的环境,因为使用@Getter和@Setter注解,并且使用@RequestBody来接收前端json字符串的话是需要这个lombok的环境;

网上很多文章对于lombok的安装讲的不是很细节,楼主用自己的语言将lombok的安装重头细节的讲一遍:

1.从网上下载lombok的jar包,这里我推荐的是lombok1.16.20.jar这个版本的:
链接:http://mvnrepository.com/artifact/org.projectlombok/lombok/1.16.20

打开链接可以看到如下图:(点击红色箭头即可下载)

2.下载完毕后打开下载的目录;我这里是D盘的根目录:

 3.打开cmd命令窗口:输入以下指令

需要注意到:后面跟的路径是自己下载lombok的jar包的路径,每个人可能都不同,按自己的实际路径来

 4.输入命令之后会弹出一个对话框如下图:

红色箭头说明:因为这个对话框没有定位到我的eclipse安装目录,那么就需要点击这个红色箭头所指的按钮,选到我们的eclipse安装目录即可;(一般都会自动获取到我们的eclipse安装目录)

5.点击上图的Install/Update,然后点击Quit Installer 即可;

提示:这里是通过对话框安装,手动安装的话自己百度,很简单!

6.找到我们的ecllipse安装目录:发现多了一个lombok.jar包

7.于是打开eclipse.ini文件查看:多了这一行代码

有了6,7点的情况,就证明我们的lombok环境已经装好了,eclipse可以识别lombok了

8.eclipse可以识别lombok,不是意味着你现在什么都不要做了,还需要在工程中引入lombok.jar包即可(maven工程为例):

               

<dependency>
    <groupId>org.projectlombok</groupId>
	<artifactId>lombok</artifactId>
	<version>1.16.20</version>
</dependency>

大家需要注意的一点是:

我工程中引入的lombok的版本号和装环境的时候的lombok的版本号是一样的,一定要注意版本号要相同,不然也没有效果;

9.上面步骤都做完以后,需要clean一下项目,然后重启eclipse即可

10现在大家可以重新试试了,传json值应该可以接受到了!
 

猜你喜欢

转载自blog.csdn.net/inflaRunAs/article/details/89226757
今日推荐