其实很简单     在客户端有window.open 函数 ,但是同时要提交原来这个页面得到需要的数据存入session
再从弹出的页面中取出数据,显然弹出的页面显示的数据都是上一次的,如果刷新一次就是最新的数据这个问题应该比较普遍,想问问有没有解决办法 。 PS  知道从服务器端可以开新窗口的办法,response.getWrite ,但是跳转后原来的页面不知道为什么就变成空白了
   

解决方案 »

  1.   

    你弹出一个页面  用<jsp:forward />经过后台查询数据
    不就每次都是最新的数据了吗
      

  2.   

    原来的页面继续转进存session,然后页面定义hidden变量存数据,然后, opener.document.getElementById(hidden id).....来取值显示呢,不知道能不能满足你的要求。
      

  3.   

      3L 的方法应该不行,好像必须需要刷新才行说明一下 A页面中有一个方法,不仅要提交数据,还要开启新页面 B明显开启新页面B在前,提交数据在后,提交数据后存入sessionB页面取出数据,2L的定时刷新是什么意思也就是session 滞后
      

  4.   


    我的意思是,如果A页面存完session之后,仍然转进到A页面得话,可以把session中得值取出来放hidden。
    然后再在onload里面去开B页面,这个时候B可以取得你的值啦办法土了点,但应该管用
      

  5.   

       我现在的顺序是A-B-存数据
     你的思维是A-A-存数据-A-B 是吧  我是不能让A-A 这一步的  
      就是只要刷新才能解决问题或者如何在服务器端开一个新页面 ,就可以保证我新存数据,后开页面
      

  6.   


    呵呵,那就采用2L得办法,在B页面放个定时器。
    onload里面调用
    setInterval("test();",1);
    test()方法去找opener.document.***,
    找到了数据之后设置到B,再clearInterval具体google一下吧
      

  7.   

    不过我在想,如果你A-B-存数据。如果存数据失败了呢?那你得B岂不是永远娶不到数据啦?拿还开他做什么嘛,所以我刚才想A-存数据-open B了。
      

  8.   

        是啊 比如第一次 B 是肯定没有数据的 因为开启B 的时候后台还没有提交数据呢 现在就是需要在open 这个页面的时候 ,一进入这个页面的时候就刷新一次
      

  9.   


    那就Bonload得时候加个定时器吧。
    不停得去刷A页面得数据。
      

  10.   

    定时器得用法,把下面这段扔到html里面,看看效果就明白了。<div id="maq" style="overflow:hidden;height:50px;width:220px;"> <div id="mtext"> 爱情有时像在等公交车,不想坐的公交车接二连三频频为你停留,而真正想坐的,却怎么也等不到,像什么... </div> <div id="m0"></div> </div><br><br><br><br> <input type="button" value="第一个滚动按钮" onclick="news1()">&nbsp;&nbsp;<input type="button" value="第二个滚动按钮" onclick="news2()"> <script language="javascript"> var speed=20; var MyMar=setInterval(Marquee,speed); function inn(){ var mtext=document.getElementById("mtext"); var m0=document.getElementById("m0"); var maq=document.getElementById("maq"); m0.innerHTML=mtext.innerHTML; //调整滚动速度 maq.onmouseover=function(){ clearInterval(MyMar) }; maq.onmouseout=function(){ MyMar=setInterval(Marquee,speed) }; } function Marquee(){ if(m0.offsetTop-maq.scrollTop<=0) { maq.scrollTop-=mtext.offsetHeight; } else{ maq.scrollTop++; } } function news1(){ var mtext=document.getElementById("mtext"); mtext.innerHTML="从下到上滚动1从下到上滚动1从下到上滚动1从下到上滚动1从下到上滚动1从下到"; var speed1=20; var mtext1=document.getElementById("mtext"); var m01=document.getElementById("m0"); var maq1=document.getElementById("maq"); m01.innerHTML=mtext1.innerHTML; //调整滚动速度 function Marquee1(){ if(m01.offsetTop-maq1.scrollTop<=0) maq1.scrollTop-=mtext1.offsetHeight; else{ maq1.scrollTop++; } } maq1.onmouseover=function(){ clearInterval(MyMar)}; maq1.onmouseout=function(){ MyMar=setInterval(Marquee1,speed1)}; } function news2(){ var mtext=document.getElementById("mtext"); mtext.innerHTML="从下到上滚动2从下到上滚动2从下到上滚动2从下到上滚动2从下到上滚动2从下滚动2"; } window.onload=inn; </script>