A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 小斥候 高级黑马   /  2014-7-19 18:55  /  1578 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 小斥候 于 2014-7-19 18:58 编辑

一个测试页面,里面有”删除“,快速双击删除按钮会出现这样的问题:

http://paste.ubuntu.com/7818908/
该怎么解决?






5 个回复

正序浏览
http://paste.ubuntu.com/7818908/ 打开了看不懂都看上去是导包?
回复 使用道具 举报
莫问纷飞 发表于 2014-7-19 21:55
这样遍历id有值吗,没有的话就是你在action中准备的数据有问题
删除单看这句话也没错
和的区别就是如果在s ...

值都是有的,就只是action和href的区别而已。现在就用href了
回复 使用道具 举报
<s:property value="id" />这样遍历id有值吗,没有的话就是你在action中准备的数据有问题
<s:a action="roleAction_delete?id=%{id}">删除</s:a>单看这句话也没错
<s:a>和<a>的区别就是如果在struts的配置文件中配置了扩展名是.action或.do的话<s:a>会自动帮你加上
影响的因素有很多吧
你的模型驱动看看写对了没,是不是用<s:form>提交的?
回复 使用道具 举报
莫问纷飞 发表于 2014-7-19 19:11
在写oa啊,快速点两次相当于发了两次请求,第一次请求已经删了,第二次找不到实体当然会报错,id已经没了
...

多谢,这个解决了;又有个新问题:
<s:iterator value="#roleList">
                <s:property value="id" />
                <s:a action="roleAction_delete?id=%{id}">删除</s:a>
                <br/>
</s:iterator>
为什么在页面那个删除链接的?id显示不出来?/roleAction_delete
我把<s:a>的action换成href后就好了?roleAction_delete?id=1
回复 使用道具 举报
在写oa啊,快速点两次相当于发了两次请求,第一次请求已经删了,第二次找不到实体当然会报错,id已经没了
在你baseDao里面判断一下吧
public void delete(Long id) {
                if (id == null) {
                        return;
                }
                Object entity = getById(id);
                if (entity != null) {
                        getSession().delete(entity);
                }
}
这么写应该没事了吧
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马