Spring Boot接收Vue传递的JSON注册数据为空的解决方法求助
解决Spring Boot接收Vue JSON数据为null的问题
针对你遇到的后端接收数据为null的问题,从代码中可定位出几个关键问题,逐一修正即可:
1. 修正请求路径匹配问题
后端接口路径为api/registration,但前端axios请求的是registration,这会导致请求路径不匹配(前端会以当前页面URL为基础拼接相对路径),需将前端请求路径改为完整接口路径:
// Registration.vue 中onSubmit方法修改 axios.post('/api/registration', values)
2. 给实体类添加无参构造方法
Jackson反序列化JSON时要求实体类必须有无参构造方法,否则无法实例化对象,最终导致字段值为null。修改NewUser.java:
package com.example.demo.pojo; public class NewUser { private String CompanyName; // 添加无参构造方法 public NewUser() {} public String getCompanyName() { return CompanyName; } public void setCompanyName(String CompanyName) { this.CompanyName = CompanyName; } }
3. 统一字段序列化规则(可选但推荐)
前端传递的是大驼峰CompanyName,而Spring Boot默认Jackson序列化规则为小驼峰(如companyName)。为避免大小写匹配问题,推荐给实体类字段添加@JsonProperty注解,明确指定JSON字段名,同时符合Java编码规范:
package com.example.demo.pojo; import com.fasterxml.jackson.annotation.JsonProperty; public class NewUser { @JsonProperty("CompanyName") private String companyName; public NewUser() {} public String getCompanyName() { return companyName; } public void setCompanyName(String companyName) { this.companyName = companyName; } }
4. 修正控制器的实体类导入
你的控制器中导入的是com.example.demo.pojo.newUser;(小写n),但方法参数使用NewUser user(大写N),Java大小写敏感会导致编译错误,需确保导入类名与参数类型一致:
// 修正导入语句 import com.example.demo.pojo.NewUser;
验证步骤
- 重启后端服务,确保接口正常运行
- 前端提交表单时,打开浏览器控制台(F12),查看Network标签中的POST请求,确认Request Payload包含
CompanyName字段 - 后端再次打印,即可正确获取字段值
内容的提问来源于stack exchange,提问作者Ka hei Tong
相关产品推荐
相关产品推荐

