Spring Boot + Angular 5表单提交http.post后数据库存入null值问题
问题分析与解决方案
我仔细看了你的代码和问题描述,前端能生成正确的JSON但后端存null、查询删除正常,核心问题出在后端请求体的接收逻辑上。
关键问题点
你的ArticleController里的createArticle方法没有添加@RequestBody注解,Spring无法自动将前端发送的JSON请求体映射到Article实体对象中,导致所有字段默认是null值。
原代码片段:
@PostMapping public Article createArticle(Article art) { return article.create(art); }
修复方案
给方法参数加上@RequestBody注解,让Spring自动解析请求体的JSON数据到实体类:
@PostMapping public Article createArticle(@RequestBody Article art) { return article.create(art); }
额外验证项(可选)
- 确认Lombok注解生效:你的实体类用了
@Getter@Setter,确保项目已正确引入Lombok依赖,且IDE开启了Lombok支持(避免Spring无法访问实体字段)。 - 请求头检查:前端服务已设置
Content-Type: application/json,这是正确的,确保请求头没有被拦截或篡改。 - 路由冲突规避:你同时使用了自定义
ArticleController和@RepositoryRestResource,当前查询正常但后续可能出现路由冲突,可给@RepositoryRestResource设置path属性(比如@RepositoryRestResource(path = "articles")),和自定义Controller的/api路由区分开。
完成修复后再测试表单提交,应该就能正常将数据存入MySQL数据库了。
内容的提问来源于stack exchange,提问作者Stefan Muresan
相关产品推荐
相关产品推荐

