如何让 CRUD 的删除方法在 Spring 项目上工作
How to get a delete method of CRUD to work on a Spring project
在基于 Spring 的项目上处理 CRUD 删除方法时遇到一些困难。不断收到 404 错误。由于我是编程新手,所以我无法自己解决问题。我试图在各种 YouTube 指南和文章中寻求一些解决方案,试图重写,但没有任何帮助。非常感谢任何可以帮助我的人。附上处理 CRUD 的 DELETE 方法的部分代码:
服务:
public void deleteVisit(Long id) {
repository.delete(id);
}
控制器:
@DeleteMapping("delete-appointment/{id}")
public void deleteAppointment(@PathVariable Long id) {
dentistVisitRepository.delete(id);
}
百里香叶:
<td><a th:href="@{delete-appointment/{id}(id=${appointment.id})}">Delete</a></td>
此代码采用对象参数repository.delete(Entity)
但是这段代码带长参数使用这段代码通过id删除
public void deleteVisit(Long id) {
repository.deleteById(id);
}
如果你想删除entity你可以使用这个代码
public void deleteVisit(Long id) {
Entity entity=repository.findById(id).get();
repository.delete(entity);
}
- 在控制器中你需要调用服务
@DeleteMapping("delete-appointment/{id}")
public String deleteAppointment(@PathVariable Long id) {
//You might have to first find it before deletion to ensure there are no errors
appointmentService.deleteVisit(id);
return "Deleted";
}
- 在您从存储库调用 deleteById 的服务中
public void deleteVisit(Long id) {
repository.deleteById(id);
}
- 锚标记使用的默认 HTTP 方法是 GET 您需要创建一个表单才能更改 http 方法
<form action="#" th:action="@{delete-appointment/{id}'(id=${appointment.id})}" th:method="delete" >
<input type="hidden" name="_method" value="delete" />
<button type="submit" id="submitButton"> </button>
</form>
如果您使用的是spring boot 2.2+,请将以下内容添加到您的application.properties
spring.mvc.hiddenmethod.filter.enabled=true
在spring boot 2.2+之后,这个隐藏的方法过滤器默认是关闭的。更多详情 check here.
在基于 Spring 的项目上处理 CRUD 删除方法时遇到一些困难。不断收到 404 错误。由于我是编程新手,所以我无法自己解决问题。我试图在各种 YouTube 指南和文章中寻求一些解决方案,试图重写,但没有任何帮助。非常感谢任何可以帮助我的人。附上处理 CRUD 的 DELETE 方法的部分代码:
服务:
public void deleteVisit(Long id) {
repository.delete(id);
}
控制器:
@DeleteMapping("delete-appointment/{id}")
public void deleteAppointment(@PathVariable Long id) {
dentistVisitRepository.delete(id);
}
百里香叶:
<td><a th:href="@{delete-appointment/{id}(id=${appointment.id})}">Delete</a></td>
此代码采用对象参数repository.delete(Entity)
但是这段代码带长参数使用这段代码通过id删除
public void deleteVisit(Long id) {
repository.deleteById(id);
}
如果你想删除entity你可以使用这个代码
public void deleteVisit(Long id) {
Entity entity=repository.findById(id).get();
repository.delete(entity);
}
- 在控制器中你需要调用服务
@DeleteMapping("delete-appointment/{id}")
public String deleteAppointment(@PathVariable Long id) {
//You might have to first find it before deletion to ensure there are no errors
appointmentService.deleteVisit(id);
return "Deleted";
}
- 在您从存储库调用 deleteById 的服务中
public void deleteVisit(Long id) {
repository.deleteById(id);
}
- 锚标记使用的默认 HTTP 方法是 GET 您需要创建一个表单才能更改 http 方法
<form action="#" th:action="@{delete-appointment/{id}'(id=${appointment.id})}" th:method="delete" >
<input type="hidden" name="_method" value="delete" />
<button type="submit" id="submitButton"> </button>
</form>
如果您使用的是spring boot 2.2+,请将以下内容添加到您的application.properties
spring.mvc.hiddenmethod.filter.enabled=true
在spring boot 2.2+之后,这个隐藏的方法过滤器默认是关闭的。更多详情 check here.