日期:2014-05-17  浏览次数:20813 次

关于struts1的线程安全问题,造成的数据混乱问题
我在jsp页面有如下代码
<iframe  frameborder="0" scrolling="no" height="600" width="550" src="../printdata/invoiceNo.do?action=init&type=<%=printType%>&id=<%=tmpinvArray.toString() %"></iframe>
  这个iframe是循环加载的  但是刷新里面的单个iframe造成数据混乱了   这个问题怎么解决 有哪位大侠碰到过,请教一下。

------解决方案--------------------
引用:
Quote: 引用:

这个和线程安全有关系么?
是你取到的type和id有问题吧。


值第一次都是对的,所以你说的这个情况不存在。

另外struts1是单例模式的,所以之前的所有数据加载完以后都被最后的一组数据覆盖了,这个struts1的单例模式有关吧,我个人认为是这样的,但是不知道怎么解决。


既然是线程不安全,也就是说只开了一个线程,除非你在这个线程里面存了什么静态值,否则怎么会不停的被覆盖?
线程不安全和对类的使用没有影响吧?他影响的只是多个请求对同一个数据进行修改时可能发生的数据冲突。即使是这样,通过同步也可以达到安全的目的。
我建议你还是debug一下,确认你程序中的取得的参数和返回结果都没有问题。
------解决方案--------------------
建议用struts2,因为struts1.x已经退出历史舞台了,生命周期已经结束,官方也不再更新了。官方已经放弃struts1,全力维护struts2。