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

Angular表单提交后Spring Boot中images字段始终为null问题排查

问题:Angular表单提交后Spring Boot无法获取images字段值

在Angular中实现了包含author、context、images字段的提交表单,提交后Spring Boot后端能正常获取author和context的值,但images字段始终返回null。

问题原因

查看Spring Boot端的Content实体类代码,发现images字段对应的getter方法名错误:字段名为images,但getter方法写成了getImage()(缺少末尾的s)。Spring MVC使用@ModelAttribute绑定请求参数时,会通过字段对应的getter/setter方法名匹配请求中的参数名,方法名与字段名不匹配导致无法正确映射赋值。此外,原实体类缺少所有字段的setter方法,这也是参数无法绑定的潜在问题。

解决方案

  1. 修正images字段的getter方法名,改为getImages(),与字段名保持一致;
  2. 补充所有字段的setter方法,确保Spring MVC能通过反射为字段赋值。

修正后的Spring Boot代码

实体类Content

public class Content {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String context;
    private String author;
    private String images;

    // Getter方法
    public Long getId() { return id; }
    public String getContext() { return context; }
    public String getAuthor() { return author; }
    // 修正getter方法名,与字段名匹配
    public String getImages() { return images; }

    // 补充Setter方法,用于参数绑定
    public void setId(Long id) { this.id = id; }
    public void setContext(String context) { this.context = context; }
    public void setAuthor(String author) { this.author = author; }
    public void setImages(String images) { this.images = images; }
}

控制器代码(无需修改)

@PostMapping("/create")
@ResponseBody
public Content saveContent(@ModelAttribute Content content){
    System.out.println(content.getImages());
    System.out.println(content.getAuthor());
    return null;
}

Angular代码(无需修改)

submitForm() {
    const formData = new FormData();
    formData.append('author', 'John Smith');
    formData.append('images', 'sample.png');

    this.http.post<any>('/create', formData).subscribe({
        next: (data) => {
          console.log('Success');
        },
        error: (err) => {
          console.log(err);
        },
    })
}

内容的提问来源于stack exchange,提问作者L1N3NM3L0N

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 11:47:56