一个空的Post请求AJAX + Spring Boot到来了

问题描述 投票:0回答:1

在前端,有这样的代码:

$("#add_button").click(function() {
    console.log("The button has been pressed");
    var genre = {
        name: $("#genre_name").val(),
        description: $("#genre_desc").val()
    };
            
$.ajax({
    type: "POST",
    url: "/save_genre",
    data: JSON.stringify(genre),
    contentType: "application/json",
    success: function(response) {
        console.log("Genre successfully created:", response);
    },
    error: function(error) {
        console.error("An error occurred while creating the genre:", error);
    }
});

在其中,通过按下按钮,我们从两个表单读取数据,创建一个对象,将其序列化为 JSON 格式,并向 URL“/save_genre”的服务器发送 POST 请求。

反过来,在服务器端,我们接受并写入数据库:

@RestController
public class AddGenreRestController {

    @Autowired
    private GenreRepository GenreRepository;

    @PostMapping("/save_genre")
    public Genres addGenre(@RequestBody Genres genre) {
        System.out.println("Genre = " + genre.GetName());
        return GenreRepository.save(genre);
    }
}

响应以下行:

System.out.println("Genre = " + genre.GetName());
Genre = null
被打印到控制台。表中创建了一条新记录,但字段也设置为
NULL

为什么会发生这种情况以及如何解决?

我的“流派”课程:

@Entity
@Table(name="Genres")
public class Genres {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long ID;

    private String name;

    @Lob
    @Column(columnDefinition = "text")
    private String description;

    public Genres() {

    }

    public Long GetID() { return ID; }
    public void SetID(Long ID) { this.ID = ID; }
    public String GetName() { return name; }
    public void SetName(String name) { this.name = name; }
    public String GetDescription () { return description; }
    public void SetDescription(String description) { this.description = description; }
}
json ajax spring spring-boot model-view-controller
1个回答
0
投票

getter/setter 名称与 bean 约定不匹配,改为首字母小写或使用 Jackson 注解进行标记

public String getName() { return name; }
public void setName(String name) { this.name = name; }
© www.soinside.com 2019 - 2024. All rights reserved.