在做基于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);
}
}
分享到:
相关推荐
jsp编程的一些小技巧总结,绝对实用。包括JSP编程中常用的js技术。 1.JSP编程中常用的js技术 2. 在下拉列表框里选择一个值后跳出新窗口? 3. 在JSP中启动execl? 4. 两级下拉列表框联动菜单? 5. java中如何把一个目录...
SubmitOncePage:解决刷新页面造成的数据重复提交问题 SharpRewriter:javascript + xml技术利用#实现url重定向 采用XHTML和CSS设计可重用可换肤的WEB站点 asp.net的网址重定向方法的比较:面向搜索引擎友好 也谈 ...
2.22 防止单个页面重复提交按钮 2.23 取得列表控件选中的option对象 2.24 限制输入框仅接受特殊字符的输入 2.25 禁止页面内全部超链接 2.26 实现动态组合列表框 2.27 如何使用属性过滤器 2.28 如何测试某个元素是否...
111 <br>0184 如何在ASP.NET中获取文件的扩展名 111 <br>0185 如何在ASP.NET中用URL在页面之间传值 112 <br>0186 如何使用IsPostBack实现ASP.NET页面加载 112 <br>0187 如何利用输出缓存技术缓存...
实例215 显示数据表中的重复记录和记录条数 335 8.8 排序、分组统计 336 实例216 对数据进行降序查询 336 实例217 对数据进行多条件排序 337 实例218 对统计结果进行排序 338 实例219 单列数据分组统计 ...
第1章 页面特效 1.1 HTML页面反向显示 1.2 页面自动最大化 1.3 页面自动刷新 1.4 页面的后退、刷新、前进 1.5保护网页源代码 1.6 保护自己的网页不被放入框架 1.7 保护自己的网页不被放入框架 1.8 打印页面的出错...
第1章 页面特效 1.1 HTML页面反向显示 1.2 页面自动最大化 1.3 页面自动刷新 1.4 页面的后退、刷新、前进 1.5保护网页源代码 1.6 保护自己的网页不被放入框架 1.7 保护自己的网页不被放入框架 1.8 打印页面的出错...
实例035 在页面中打印服务器时间 65 实例036 在页面中打印当前执行的PHP文件名 67 实例037 区分单引号和双引号 68 实例038 动态输出JavaScript代码 69 实例039 当数字遇到了字符串 70 实例040 PHP程序员的基础——...
实例035 在页面中打印服务器时间 65 实例036 在页面中打印当前执行的PHP文件名 67 实例037 区分单引号和双引号 68 实例038 动态输出JavaScript代码 69 实例039 当数字遇到了字符串 70 实例040 PHP程序员的基础——...
本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 ...
linux/unix shell编程指南,全面介绍了Linu/unix shell编程的常用知识和技巧,是不可多得的编程宝典。 目 录 译者序 前言 第一部分 shell 第1章 文件安全与权限 1 1.1 文件 1 1.2 文件类型 2 1.3 权限 2 1.4 改变权限...
本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 ...
本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 ...
本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 shell...
本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 ...
本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 shell...