RuoYi框架关于防止表单/搜索重复提交的问题

在某些情况下,由于网络不佳,用户操作有误(连续点击多次提交按钮),页面卡顿等原因,可能会出现请求重复提交,造成数据库保存多条重复数据/查询多次重复sql。

在前端处理方式

交给前端解决,判断多长时间内不能再次点击按钮,或者点击之后禁用按钮,当然,聪明的小伙伴能够绕过前端验证,因此推荐后端进行拦截处理。但是使用查询的 $.table.search()的话可使用:

// 搜索-默认第一个form
search: function(formId, tableId) {
	$.modal.loading("正在处理,请稍后...");
	table.set(tableId);
	table.options.formId = $.common.isEmpty(formId) ? $('form').attr('id') : formId;
	var params = $.common.isEmpty(tableId) ? $("#" + table.options.id).bootstrapTable('getOptions') : $("#" + tableId).bootstrapTable('getOptions');
	if($.common.isNotEmpty(tableId)){
		$("#" + tableId).on('load-success.bs.table', function() {
                $.modal.closeLoading();
            });
		$("#" + tableId).bootstrapTable('refresh', params);
	} else{
	    $("#" + table.options.id).on('load-success.bs.table', function() {
                $.modal.closeLoading();
            });
		$("#" + table.options.id).bootstrapTable('refresh', params);
	}
},

另外也可在后端进行拦截

在接口方法上添加 @RepeatSubmit 注解即可,注解参数说明

后端操作:

// 查询方法
@PostMapping("/list")
@ResponseBody
//采用默认参数
@RepeatSubmit 
public TableDataInfo list(Xxxx xxxx)
{
	startPage();
	List<Xxxx> list = xxxxService.selectXxxxList(xxxx);
	return getDataTable(list);
}

希望对您有所帮助!

  • 11
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值