尝试将其发布到我的Spring API
{
"test1":"test1",
"test2":"test2",
"test3":"test3"
}
但是我一直收到400 Bad Request
的回复。
控制器看起来像这样:
@RestController
@RequestMapping("/rest/api")
public class DokumentController {
@PostMapping(value = "/test", consumes = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity test(@RequestBody TestDTO body) {
System.out.println(body.getTest1());
return ResponseEntity.ok().build();
}
}
TestDTO看起来像这样:
public class TestDTO {
private String test1;
private String test2;
private String test3;
TestDTO(String test1, String test2, String test3) {
this.test1 = test1
this.test2 = test2
this.test3 = test3
}
public String getTest1() {
return test1;
}
public void setTest1(String test1) {
this.test1 = test1;
}
//And so on..
}
有人可以告诉我我在做什么错吗?
答案 0 :(得分:3)
您必须在DTO类中创建一个没有参数的构造函数:
public class TestDTO {
private String test1;
private String test2;
private String test3;
//Default no argument constructor
TestDTO() {
}
TestDTO(String test1, String test2, String test3) {
this.test1 = test1
this.test2 = test2
this.test3 = test3
}
public String getTest1() {
return test1;
}
public void setTest1(String test1) {
this.test1 = test1;
}
//And so on..
}
Jackson Framework首先创建该类,然后使用反射来设置值。