使用下面显示的代码,我不能删除学生,因为当我单击删除按钮时,它会抛出一个Method Not Allowed错误(status=405)
我发现很多人使用GET请求而不是DELETE来管理这个,但这不是一个不好的做法吗?我只是想删除具有该id的学生并保持在同一页面上(我将在修复此问题后管理删除验证)。为什么相同的代码适用于GetMapping而不是DeleteMapping?
- 在studentController中 *
@DeleteMapping("/delete/{id}")
public String deleteStudent(@PathVariable Long id) {
this.studentService.deleteStudent(id);
return "redirect:/students";
}
- 在学生.html*
<a th:href="@{'/students/delete/' + ${student.id}}" class="btn btn-danger">Delete</a>
1条答案
按热度按时间rjee0c151#
正如M.代努姆在评论中所说,使用html
<a href
可以进行http GET请求。使用htmlform
可以进行http GET或POST请求。因此,在您的情况下,将@DeleteMapping("/delete/{id}")
更改为@PostMapping("/delete/{id}")
并使用html<form method="post"
是有意义的。如果你想使用HTTP DELETE,你必须使用JavaScript。