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

解决方案 »

  1.   

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

  2.   

    数据肯定没有取错的,因为第一次取的数据都是对的,只有刷新单个iframe的时候会出现问题。
      

  3.   


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

  4.   

       第一次加载页面的时候数据都是正常的,只有单个刷新iframe的时候才会出现问题。
      

  5.   


    我知道, 我意思是说再次刷新的时候会不会已经在后台就出现乱码了, 如果没有的话, 就是页面的问题; 如果有的话, 那就是在后台去数据的时候就出错了, 不过你要是重新走了遍action的话, 应该不会出现任何问题的。  缩小出现问题范围
      

  6.   


    值第一次都是对的,所以你说的这个情况不存在。另外struts1是单例模式的,所以之前的所有数据加载完以后都被最后的一组数据覆盖了,这个struts1的单例模式有关吧,我个人认为是这样的,但是不知道怎么解决。既然是线程不安全,也就是说只开了一个线程,除非你在这个线程里面存了什么静态值,否则怎么会不停的被覆盖?
    线程不安全和对类的使用没有影响吧?他影响的只是多个请求对同一个数据进行修改时可能发生的数据冲突。即使是这样,通过同步也可以达到安全的目的。
    我建议你还是debug一下,确认你程序中的取得的参数和返回结果都没有问题。
      

  7.   


    值第一次都是对的,所以你说的这个情况不存在。另外struts1是单例模式的,所以之前的所有数据加载完以后都被最后的一组数据覆盖了,这个struts1的单例模式有关吧,我个人认为是这样的,但是不知道怎么解决。既然是线程不安全,也就是说只开了一个线程,除非你在这个线程里面存了什么静态值,否则怎么会不停的被覆盖?
    线程不安全和对类的使用没有影响吧?他影响的只是多个请求对同一个数据进行修改时可能发生的数据冲突。即使是这样,通过同步也可以达到安全的目的。
    我建议你还是debug一下,确认你程序中的取得的参数和返回结果都没有问题。    已经做过同步之类的修改,但是就是同步也同样避免不了,多个请求对同一个数据进行覆盖。
      

  8.   

    建议用struts2,因为struts1.x已经退出历史舞台了,生命周期已经结束,官方也不再更新了。官方已经放弃struts1,全力维护struts2。