无法使用角度 6 和弹簧引导执行编辑操作



实际上我想在表单中执行编辑操作。我正在将 Id 传递给我在 forntend 中使用角度 6 制作的 Spring 引导 API,但我得到的错误是:

调用更新方法的主代码:

{
this.selectService.updatenewSelection(this.selection.selectionId,0).subscribe((selection)=>{
console.log(selection);
this.router.navigate(['/add-selection']);
},(error)=>{
console.log(error);
});
}

现在 selection.service.ts 中的更新方法是

updatenewSelection(id: number, value: any): Observable<Object> {
return this.http.put(`${this.baseUrl}/${id}`, value);
}

我在 Spring 启动中更新的 api 是:我已经尝试了这两种方法,但它仍然不起作用。

@PutMapping("/selections/{id}")
public ResponseEntity<Selection> updateSelection(@PathVariable("id") long id, @RequestBody Selection selection) {
System.out.println("Update Selection with ID = " + id + "...");
Optional<Selection> selectionData = repository.findById(id);
if (selectionData.isPresent()) {
Selection _selection = selectionData.get();
_selection.setSelectionDate(selection.getSelectionDate());
_selection.setSelectedBy(selection.getSelectedBy());

return new ResponseEntity<>(repository.save(_selection), HttpStatus.OK);
} else {
return new ResponseEntity<>(HttpStatus.NOT_FOUND);
}
}
@PutMapping("/selections/update")
public Selection updatenewSelection(@RequestBody Selection selection) {
return repository.save(selection);
}

单击保存按钮时出现错误,其中"1"是它传递的 Id:

PUT http://localhost:8080/api/selections/1 400
HttpErrorResponse {headers: HttpHeaders, status: 400, statusText: "OK", url: "http://localhost:8080/api/selections/1", ok: false, …}
error: {timestamp: "2018-10-09T07:29:16.628+0000", status: 400, error: "Bad Request", message: "JSON parse error: Cannot construct instance of `co…ource: (PushbackInputStream); line: 1, column: 1]", path: "/api/selections/1"}
headers: HttpHeaders {normalizedNames: Map(0), lazyUpdate: null, lazyInit: ƒ}
message: "Http failure response for http://localhost:8080/api/selections/1: 400 OK"
name: "HttpErrorResponse"
ok: false
status: 400
statusText: "OK"
url: "http://localhost:8080/api/selections/1"
__proto__: HttpResponseBase

您正在发送0作为值,但服务需要Selection对象!

最新更新