# 防重复提交
建议防重复提交应用场合有一定的限制,按实际场景考虑
# 本内容你将获得
- 防重复提交集成
# 重复集成
# 设计流程
此处防重复提交基于 token 设计,防重复提交流程:
- 在进入页面的时候,生成 token,并保存在 Session 中
- 在添加页面添加 token 标题
- 首次提交,验证 token,同时清理
- 二次提交验证是否有 token,如没有则返回 token 错误,且后台报错
# 验证操作
进入页面控制层,添加注解@FormToken,注意此处参数一定要添加Httpservletrequest,否则不生效,如:
@FormToken(save=true)
@GetMapping("/add")
public void add(Model model , HttpServletRequest request){
}
在页面<form>标签中添加 token 值,如:
<form class="form-horizontal" id="addForm">
<input type="hidden" name="formToken" th:value="${session.formToken}" />
<!-- 以下为表单字段 -->
</form>
在保存的方法中去掉 token,如:
@FormToken(remove=true)
@ResponseBody
@PostMapping("/save")
public ResponseBean save(Model model , HttpServletRequest request, DTO dto) {
// 业务内容
return ResponseGenerator.ok(null) ;
}
如此集成即可