问题描述
记录一次使用向@RequestBody传递json数据无相应的问题,在写实体类的时候由于想写一个带参数的构造函数方便后续的初始化,写完后忘了写无参的构造函数(java在写了构造函数之后不会自动生成无参的构造函数),导致使用@RequestBody接收json数据时找不到无参构造函数,无法初始化对象,从而接受json数据失败。
问题代码
public class BookController {
@PostMapping
public String save(@RequestBody Book book){
System.out.println(book);
return "success";
}
}
Book类:
public class Book {
private String type;
private String name;
private String description;
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
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;
}
//必须手动加无参构造函数
public Book() {
}
//这里增加了构造方法
public Book(String type, String name, String description) {
this.type = type;
this.name = name;
this.description = description;
}
@Override
public String toString() {
return "Book{" +
"type='" + type + '\'' +
", name='" + name + '\'' +
", description='" + description + '\'' +
'}';
}
}