从 POST 请求中获取带有空字段的 DTO
Getting a DTO with null fields from POST request
我想知道为什么我从前端应用程序 (Angular) 得到一个 DTO object,其中包含空字段,
前台调用
public saveFoo(foo: Foo): Observable<Foo> {
return this.http.post<Foo>(API_ROOT_URL + "/foos/", foo})
}
后处理
@PostMapping("/foos/")
public ResponseEntity<FooDto> createFoo(@RequestBody FooDto fooDto) {
return ResponseEntity.ok(FooService.saveFoo(FooDto));
}
我尝试添加一些 json 类型 headers(如此处建议 )但徒劳无功:
{
headers: {
Accept: 'application/json',
'Content-Type': 'application/json'
}
我发现了问题:我前面的 DTO 字段是错误的,与 RequestBody 对象类型不匹配。
我的 IDE (IntelliJ) 在生成 getter 和 setter 后自动在每个字段的开头添加下划线“_”:
export class FooClass{
private _foo: string;
get foo(): string {
return this._foo;
}
set foo(value: string) {
this._foo= value;
}
}
我想知道为什么我从前端应用程序 (Angular) 得到一个 DTO object,其中包含空字段,
前台调用
public saveFoo(foo: Foo): Observable<Foo> {
return this.http.post<Foo>(API_ROOT_URL + "/foos/", foo})
}
后处理
@PostMapping("/foos/")
public ResponseEntity<FooDto> createFoo(@RequestBody FooDto fooDto) {
return ResponseEntity.ok(FooService.saveFoo(FooDto));
}
我尝试添加一些 json 类型 headers(如此处建议
{
headers: {
Accept: 'application/json',
'Content-Type': 'application/json'
}
我发现了问题:我前面的 DTO 字段是错误的,与 RequestBody 对象类型不匹配。
我的 IDE (IntelliJ) 在生成 getter 和 setter 后自动在每个字段的开头添加下划线“_”:
export class FooClass{
private _foo: string;
get foo(): string {
return this._foo;
}
set foo(value: string) {
this._foo= value;
}
}