黑马程序员技术交流社区

标题: SSH2整合后测试发现的问题 [打印本页]

作者: 小斥候    时间: 2014-7-19 18:55
标题: SSH2整合后测试发现的问题
本帖最后由 小斥候 于 2014-7-19 18:58 编辑

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

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







作者: 莫问纷飞    时间: 2014-7-19 19:11
在写oa啊,快速点两次相当于发了两次请求,第一次请求已经删了,第二次找不到实体当然会报错,id已经没了
在你baseDao里面判断一下吧
public void delete(Long id) {
                if (id == null) {
                        return;
                }
                Object entity = getById(id);
                if (entity != null) {
                        getSession().delete(entity);
                }
}
这么写应该没事了吧
作者: 小斥候    时间: 2014-7-19 20:08
莫问纷飞 发表于 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
作者: 莫问纷飞    时间: 2014-7-19 21:55
<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 23:16
莫问纷飞 发表于 2014-7-19 21:55
这样遍历id有值吗,没有的话就是你在action中准备的数据有问题
删除单看这句话也没错
和的区别就是如果在s ...

值都是有的,就只是action和href的区别而已。现在就用href了
作者: 王石    时间: 2014-7-20 08:56
http://paste.ubuntu.com/7818908/ 打开了看不懂都看上去是导包?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2