📅  最后修改于: 2023-12-03 15:35:19.856000             🧑  作者: Mango
在使用 Thymeleaf 进行 Web 开发时,经常需要使用表单来对数据进行删除。本文将介绍如何使用 Thymeleaf 实现表单删除操作。
在开始之前,需要确保以下条件:
在 Thymeleaf 模板中添加删除按钮,例如:
<form th:action="@{/delete}" method="post">
<input type="hidden" th:name="id" th:value="${user.id}" />
<button type="submit">删除</button>
</form>
在这个例子中,我们假设用户数据可以通过 ${user}
变量进行访问,每个用户都有一个唯一的 ID,可以通过 ${user.id}
进行访问。在表单中,我们添加了一个隐藏的表单项,用来传递要删除的用户 ID。
在 Spring MVC 控制器中定义一个可以响应表单请求的方法,例如:
@PostMapping("/delete")
public String deleteUser(@RequestParam Long id) {
// 删除用户数据的代码
return "redirect:/user/list";
}
在这个例子中,我们使用 @PostMapping
注解来指定当表单提交时要调用的方法,使用 @RequestParam
注解来获取表单中传递的参数(也就是要删除的用户 ID)。在方法中可以加入删除用户数据的代码。
为了防止 CSRF 攻击,需要添加 CSRF 防护。在表单中添加 CSRF 防护令牌,例如:
<form th:action="@{/delete}" method="post">
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}" />
<input type="hidden" th:name="id" th:value="${user.id}" />
<button type="submit">删除</button>
</form>
在这个例子中,我们使用 Thymeleaf 的 _${csrf.parameterName}
和 _${csrf.token}
属性获取 CSRF 防护令牌,并添加一个隐藏的表单项来传递 CSRF 防护令牌。
本文介绍了如何使用 Thymeleaf 实现表单删除操作。具体步骤包括添加删除按钮、定义表单控制器和添加 CSRF 防护。在实现表单操作时需要注意安全性,防止出现 CSRF 和 XSS 等安全漏洞。