我有一个简单的网络应用程序,显示带有添加和删除按钮的学生列表,如下所示:
index.html - 表格
<tr th:each="student : ${students}">
<td th:text="${student.firstName} + ' ' + ${student.lastName}"></td>
<td th:text="${student.email}"></td>
<td th:text="${student.department}"></td>
<td><a th:href="@{/delete/{id}(id=${student.id})}" class="btn btn-danger">Delete</a></td>
</tr>
IndexController.java - 用于删除
@GetMapping("/delete/{id}")
public String deleteStudent(@PathVariable Long id)
{
studentService.deleteStudentById(id);
return "redirect:/";
}
我的问题 - 为什么我的 Controller 中必须是 @GetMapping
才能使用 www 页面上的“删除”按钮删除学生?当我有 @DeleteMapping
时(我认为应该如此),我无法使用 www 页面上的“删除”按钮删除学生。执行此操作时出现 405 错误
,但通过选择删除方法的 Postman,我可以将其删除。
最佳答案
@DeleteMapping 注解需要一个th: method = "delete" 才能工作。
<td>
<form th: action = "@ {/delete/{id}(id=${student.id})}" th: method = "delete" >
<input class = "btn btn-default btn-xs" type = "submit" = Valeur "Supprimer" />
</ form>
</td>
关于java - 为什么在 Controller 中使用 @GetMapping 而不是 @DeleteMapping 进行删除工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57254807/