springboot接收参数为null的情况(lombok)

文章讲述了在SpringBoot项目中,由于实体类属性名与请求参数名大小写不匹配导致参数接收为null的问题,提出了两种解决方案:1)统一将参数名改为小写;2)使用@JsonProperty注解指定映射关系。
摘要由CSDN通过智能技术生成

实体类的属性名是大写,所以传递的参数跟他对应,结果springboot拿到的参数全部是null。

原因是参数首字母大写导致,看下面代码s

entity

@Data
public class User {
    private Integer UserId;
    private String UserName;
    private String UserPassword;
    private String Name;
    private Integer RoleId;
    private String RoleName;
    private String Department;
    private int Status;
}

controller

   @PostMapping("/register")
    public User UserRegister(@RequestBody User user){
        System.out.println(user);
        return user; 
    }

传递参数格式json

{
    "UserName":"admin",
    "UserPassword":"12345",
    "RoleId":1,
    "RoleName":"未定义",
    "Department":"未定义",
    "Name":"未定义"
}

拿到的结果全部为null

1.解决:把参数名首字母全部改为小写,就可以正常拿到参数了

{
    "userName":"admin",
    "userPassword":"12345",
    "roleId":1,
    "roleName":"未定义",
    "department":"未定义",
    "name":"未定义"
}

2.解决:给实体类加上 @JsonProperty("xxx")的标签,这样参数格式需要改为与@JsonProperty("xxx")内容一致

private Integer UserId;
    @JsonProperty("UserName")
    private String UserName;
    @JsonProperty("UserPassword")
    private String UserPassword;
    @JsonProperty("Name")
    private String Name;
    @JsonProperty("RoleId")
    private Integer RoleId;
    @JsonProperty("RoleName")
    private String RoleName;
    @JsonProperty("Department")
    private String Department;
    @JsonProperty("Status")
    private int Status;
{
    "UserName":"admin",
    "UserPassword":"12345",
    "RoleId":1,
    "RoleName":"未定义",
    "Department":"未定义",
    "Name":"未定义"
}

 

两种方法都可以解决

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 在Spring Boot项目中,Lombok是一个非常常用的Java库,它可以通过注解方式简化代码,提高开发效率。然而,有时候在启动项目时,可能会遇到“程序包lombok不存在”的错误提示。 出现这个错误的原因可能是缺少Lombok的依赖或者IDE的设置问题。解决这个问题的步骤如下: 1. 在项目的pom.xml文件中,添加Lombok的依赖。可以在 <dependencies> 标签内添加以下代码: ``` <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.16</version> <scope>provided</scope> </dependency> ``` 其中,版本号可以根据实际情况进行调整。 2. 如果已经添加了Lombok的依赖,但仍然出现错误提示,可能是IDE没有正确设置。在IDE中,需要安装Lombok插件并进行相应的配置。 - 对于IntelliJ IDEA,可以通过直接在插件市场搜索Lombok并安装,在设置中启用Lombok插件。 - 对于Eclipse,可以从Lombok官网(https://projectlombok.org/)下载Lombok Jar包,然后在eclipse.ini 文件中添加 `-javaagent:lombok.jar`,重启Eclipse。 3. 如果上述步骤都尝试过了还是无法解决问题,可以尝试重新构建项目并清除缓存。可以通过 Maven 命令执行以下两个命令: ``` mvn clean mvn install ``` 这样会清除项目的target目录并重新构建。 总结起来,解决Spring Boot项目启动时提示“程序包lombok不存在”的问题,需要确保项目中已经正确引入了Lombok的依赖,并在IDE中配置了Lombok插件。如果问题仍然存在,可以尝试重新构建项目并清除缓存。 ### 回答2: springboot项目启动提示程序包lombok不存在的问题通常是由于缺少Lombok依赖导致的。要解决这个问题,可以按照以下步骤操作: 1. 在项目的pom.xml文件中,添加Lombok依赖。 ```xml <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.20</version> <scope>provided</scope> </dependency> ``` 这个依赖会自动下载并导入Lombok的相关类库。 2. 如果已经添加了Lombok依赖,但仍然出现提示程序包lombok不存在的错误,可以尝试删除项目的target目录,然后重新构建项目。 3. 确保IDE(如IntelliJ IDEA、Eclipse等)已经安装了Lombok插件。如果没有安装该插件,可以在IDE的插件市场中搜索并安装Lombok插件。 4. 如果是在命令行中启动项目,可以尝试使用Maven命令进行构建和启动。在项目根目录下执行以下命令: ``` mvn clean install mvn spring-boot:run ``` 以上是解决springboot项目启动提示程序包lombok不存在的方法。希望对你有帮助! ### 回答3: 当您在启动Spring Boot项目时,如果遇到错误提示“程序包lombok不存在”,原因可能是您没有正确添加Lombok依赖。Lombok是一个Java库,它可以帮助减少样板代码的编写,提高开发效率。 要解决该问题,您可以按照以下步骤进行操作: 1. 确认您的项目中是否正确添加了Lombok依赖。可以打开项目的构建配置文件(如pom.xml或build.gradle),查看是否在依赖项中包含了Lombok。 2. 如果没有添加Lombok依赖,您需要手动添加它。对于Maven项目,您可以在pom.xml文件中的`<dependencies>`标签中添加以下内容: ``` <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.20</version> <scope>provided</scope> </dependency> ``` 对于Gradle项目,您可以在build.gradle文件中的`dependencies`部分添加以下内容: ``` implementation 'org.projectlombok:lombok:1.18.20' ``` 提示:请确保您添加的Lombok版本与实际使用的版本一致,以免出现不兼容的情况。 3. 添加完Lombok依赖后,您可能需要重新构建项目,以确保依赖生效。您可以执行以下命令: ``` mvn clean install ``` 或 ``` gradle clean build ``` 这将重新构建项目,并下载并添加Lombok的依赖。 完成上述步骤后,您再次启动Spring Boot项目时,应该不再出现“程序包lombok不存在”的错误提示。如果问题仍然存在,请检查您的IDE是否正常加载了Lombok插件,并正确配置了相关设置。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值