spring GET请求而不是DELETE?

eivgtgni  于 2023-04-19  发布在  Spring
关注(0)|答案(1)|浏览(126)

使用下面显示的代码,我不能删除学生,因为当我单击删除按钮时,它会抛出一个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>

rjee0c15

rjee0c151#

正如M.代努姆在评论中所说,使用html <a href可以进行http GET请求。使用html form可以进行http GET或POST请求。因此,在您的情况下,将@DeleteMapping("/delete/{id}")更改为@PostMapping("/delete/{id}")并使用html <form method="post"是有意义的。
如果你想使用HTTP DELETE,你必须使用JavaScript。

相关问题