`

解决在页面删除记录后刷新造成的重复提交小技巧

阅读更多
在做基于SSH的web应用的时候通常会遇到这样一种情况:我们在页面上的数据列表中删除一条数据,然后刷新一次当前页面hibernate会报一个异常:找不到对象 这是因为在第一次点击删除链接的时候已经将那条数据删除了,此时你可以在页面上单击右键-->属性  查看一下当前的链接它会是刚才你删除数据时候的链接例如:http://localhost/xxxx/org!del.action?pid=7 所以在这个时候如果你刷新一下当前页面就会把上一步的操作再次的执行一次 因为刚才的那一条数据已经删除了所以当然会因为找不到对象而报错 对此有两种解决方案:
(1)我们在列表中删除一条数据的时候,显示效果一般是一条数据删除完成后还会跳转到当前页面:这种跳转是forward跳转地址栏不会发生变化。所以刷新页面仍然会再次的提交请求。所以我们可以把这种forward跳转改成redirect跳转,这样地址就发生变化不会出现错误了
public String del() {
		this.orgService.del(org.getId());
		return "del_success";
	}

<!--org.action默认执行execute()方法,传递参数pid是因为列表是一棵树有多级目录要做到在哪一级目录下面删除的还要跳转到哪一级目录下面才可以 -->
<result name="del_success">/org.action?pid=${pid}</result>

public String execute() {
		List<Organization> orgs = this.orgService.search(pid);
		ActionContext.getContext().put("orgs", orgs);
		return index;
	}


(2)因为删除操作是在当前页面进行的而且地址没有变,所以刷新会出问题,我们可以利用javascript在点击删除链接的时候打开一个模态的窗口,在这个窗口中删除,删除完成之后刷新一下列表页面就可以了,这样就阻止了用户的刷新页面操作。
<td align="center" vAlign="center"><a href="javascript:del('org!del.action?id=<s:property value="id"/>','确实删除记录?')">删除</a></td>

function openDeleteDialog(url,confirmString){
	var c = confirmString;
	if(c == null || c == ''){
		c = "你确认要删除记录吗?";
	}
	if(confirm(c)){
		return window.showModalDialog(url,"window123","dialogHeight:234px;dialogWidth:271px;resizable:no;help:yes;status:no;scroll:no");
	}
	return false;
}

/*
 * 删除记录
 */
function del(url,info){
	if(openDeleteDialog(url,info)){
		window.location.reload(true);
	}
}


2
1
分享到:
评论
1 楼 form_rr 2010-03-16  
总结得很好啊!
我觉得第一种方法有一定的局限性。
redirect 方法不能把值带出来。例如,request.getAttribute的值

第二种我比较赞同。
效果比较好。

相关推荐

    JSP实用技巧集合,jsp编程的一些小技巧总结

    jsp编程的一些小技巧总结,绝对实用。包括JSP编程中常用的js技术。 1.JSP编程中常用的js技术 2. 在下拉列表框里选择一个值后跳出新窗口? 3. 在JSP中启动execl? 4. 两级下拉列表框联动菜单? 5. java中如何把一个目录...

    超实用的jQuery代码段

    2.22 防止单个页面重复提交按钮 2.23 取得列表控件选中的option对象 2.24 限制输入框仅接受特殊字符的输入 2.25 禁止页面内全部超链接 2.26 实现动态组合列表框 2.27 如何使用属性过滤器 2.28 如何测试某个元素是否...

    WEB常用的功能测试方法

    - 验证重复操作时,如重复提交表单,系统是否能正确处理。 - **注意事项**:错误信息应简洁明了,避免技术术语过多。 #### 八、删除验证 - **描述**:删除功能是许多Web应用的基本需求之一。 - **操作步骤**: - ...

    C#编程经验技巧宝典

    111 &lt;br&gt;0184 如何在ASP.NET中获取文件的扩展名 111 &lt;br&gt;0185 如何在ASP.NET中用URL在页面之间传值 112 &lt;br&gt;0186 如何使用IsPostBack实现ASP.NET页面加载 112 &lt;br&gt;0187 如何利用输出缓存技术缓存...

    100道ajax面试题

    - 异步操作:通过在后台与服务器进行少量数据交换,用户可以继续执行其他操作而无需等待整个页面刷新。 - 局部刷新:仅更新需要更改的部分页面内容,提高用户体验。 - 改善用户交互:增加网页的动态性和响应性,...

    《程序天下:JavaScript实例自学手册》光盘源码

    第1章 页面特效 1.1 HTML页面反向显示 1.2 页面自动最大化 1.3 页面自动刷新 1.4 页面的后退、刷新、前进 1.5保护网页源代码 1.6 保护自己的网页不被放入框架 1.7 保护自己的网页不被放入框架 1.8 打印页面的出错...

    程序天下:JavaScript实例自学手册

    第1章 页面特效 1.1 HTML页面反向显示 1.2 页面自动最大化 1.3 页面自动刷新 1.4 页面的后退、刷新、前进 1.5保护网页源代码 1.6 保护自己的网页不被放入框架 1.7 保护自己的网页不被放入框架 1.8 打印页面的出错...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例035 在页面中打印服务器时间 65 实例036 在页面中打印当前执行的PHP文件名 67 实例037 区分单引号和双引号 68 实例038 动态输出JavaScript代码 69 实例039 当数字遇到了字符串 70 实例040 PHP程序员的基础——...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例035 在页面中打印服务器时间 65 实例036 在页面中打印当前执行的PHP文件名 67 实例037 区分单引号和双引号 68 实例038 动态输出JavaScript代码 69 实例039 当数字遇到了字符串 70 实例040 PHP程序员的基础——...

    LotusDomino学习笔记.doc

    - **用途**: 控制表单提交后的动作,如返回到前一页或跳转到特定页面。 #### 8. 将表单设计为视图或导航器模板 - **设计方法**: 可以通过表单属性设置或使用设计工具中的模板选项来实现。 #### 9. 为 Web 定制...

    ASP开发典型模块大全(16-23)

    12. **AJAX异步通信**:虽然ASP本身不直接支持AJAX,但可以通过JavaScript库如jQuery,结合XMLHttpRequest对象实现页面的无刷新更新。 13. **模板引擎**:通过自定义函数或第三方库,如ASP.NET Web Forms或ASP.NET ...

    Linux与Unix Shell编程指南(PDF格式,共30章)

    本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 ...

    linux与unix shell编程指南.rar

    linux/unix shell编程指南,全面介绍了Linu/unix shell编程的常用知识和技巧,是不可多得的编程宝典。 目 录 译者序 前言 第一部分 shell 第1章 文件安全与权限 1 1.1 文件 1 1.2 文件类型 2 1.3 权限 2 1.4 改变权限...

    shell编程和unix命令

    本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 ...

    Linux shell编程指南

    本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 ...

    LINUX与UNIX SHELL编程指南 高清PDF

    本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 shell...

    LINUX与UNIX SHELL编程指南

    本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 ...

    linux与unix shell编程指南

    本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 shell...

Global site tag (gtag.js) - Google Analytics