gpt4 book ai didi

java - 处理@RequestBody

转载 作者:行者123 更新时间:2023-11-29 18:27:14 25 4
gpt4 key购买 nike

JavaScript 代码:

function deleteMarks(list){
$http.post('/api/marks/delete/all',list).then(
function(response){
refresh();
},function(response){
error(response.data.error)
}
);
}

Controller 代码:

@PostMapping("/delete/all")
public void deleteMarks(@RequestBody @Validated List<Long> request) {

marksService.deletemarks(request);

}

服务代码:

public void deletemarks(List<Long> list) {
for (Long id : list) {
marksRepository.delete(id);
}
}

我收到以下错误

angular.js:12759 POST http://localhost:8080/api/marks/delete/all 400()

有人可以告诉我我哪里做错了吗?

最佳答案

如果您从 JS 传递“标记列表”。 Controller 处理程序应该是:

@PostMapping("/delete/all")
public void deleteMarks(@RequestBody @Validated List<Marks> request)
{
marksService.deleteMarks(request);
}

如果您仅传递“标记的 ID”,则处理程序方法应为:

@PostMapping("/delete/all")
public void deleteMarks(@RequestBody @Validated List<String> request)
{
marksService.deleteMarks(request);
}

此外,在您的服务代码中,如果您使用 JpaRepository 的 delete 方法,它需要单个 Mark 对象作为参数,因此您必须运行一个循环覆盖您的标记列表,然后对每个标记调用delete

关于java - 处理@RequestBody,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46068346/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com