You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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;

验证步骤

  1. 重启后端服务,确保接口正常运行
  2. 前端提交表单时,打开浏览器控制台(F12),查看Network标签中的POST请求,确认Request Payload包含CompanyName字段
  3. 后端再次打印,即可正确获取字段值

内容的提问来源于stack exchange,提问作者Ka hei Tong

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 04:30:57