在开发一个项目,因为用到了window.showModelDialog(),在弹出的窗口中会得到一个JS变量的值,是我需要的ID,而这需要利用这个ID进行数据库的查询后得到一个JAVA对象,再用对象的各个属性的值给父窗口的各个文本域赋上值,现在卡在了利用已有的JS变量ID的值去调用数据库的查询方法,如果我进行异步操作的话,当前的Dialog中的值就没有了,那样给父窗口的操作就不能进行了。等高人指点:
代码大体如下:  var id = ***;//此处是页面内部JS的操作后得到的值
  //现打算利用这个ID执行一个JAVA的方法或者action返回一个JAVA对象。
  window.dialogArguments.addform.***.value = 得到的对象的属性值。等高手指点。谢谢!!!

解决方案 »

  1.   

     function showServiceLog(logId){
        window.showModalDialog("showServiceLog.do?serviceLogId="+logId,"dialogWidth=400px;dialogHeight=300px");
     }这是我做的一个小CASE,你的ID可以传到showServiceLog.do这个对应的方法中,让弹出来的页面(showServiceLog.do对应方法访问的页面)来处理需要数据,再返回
      

  2.   

    谢谢,但是不是我的意思,我说的是父窗口用showModalDialog弹出子窗口,子窗口中有一个JS的变量,现在需要利用这个变量再访问JAVA类,返回一个对象或者返回一系列的数据,之后用window.dialogArguments.addform(此为父窗口的一个form),为父窗口的form中各个text赋值。呵呵,但还是谢谢你,
      

  3.   

    在子页面中使用AJAX提交到后台,得到所需的数据后以JSON或XML格式返回到前台JS,最后将AJAX得到的数据对象传递给父页面的一个变量。
      

  4.   

    谢谢,我现在也是这么做的,之前做这个项目的人做的是prototype,我也用他的AJAX,得到了数据之后我不会JSON,直接就HTML形式的打出来,在子页面中用split生成数组,再一个个比较。勉强还算实现了我的功能。
      

  5.   

    父窗口<html>
    <head>
        <title></title>
        <script>
              function opendialog()
         {
             var selectValue=window.showModalDialog("c.html","","dialogWidth=500px;dialogHeight=500px;status=no;help=no;scrollbars=no");
             document.formp.name.value=selectValue;
         }
        </script>
    </head>
    <body>
        <form name="formp" action="">
            <input type="text" name="name">
            <input type="button" value="选择" onclick="opendialog()">
        </form>
    </body>
    </html>子窗口
    <html>
    <head>
        <title>无标题页</title>
        <script>
        function callback()
        {
         //通过你的ID异步从数据库获取数据,比如获得各json字符串str
         //然后将str传给父窗口,父窗口进行解析josn数据就行了。
         //test str="123"
         parent.window.returnValue="123"; 
         window.close();
        }
      </script>
    </head>
    <body>
        <form name="formc" action=""> 
            <input type="button" value="请求传值" onclick="return callback()">
        </form>
    </body>
    </html> 
      

  6.   

       web.xml:
    <servlet-mapping>  
         <servlet-name>dwr</servlet-name>  
         <url-pattern>/dwr/*</url-pattern>   
       
       </servlet-mapping> dwr.xml:
    <create javascript="UserSrv">
    <param name="beanName" value="类名"></param>
    <include method="方法"/>
    </create>
    jsp页面引用:
    <script  type="text/javascript" src="<=path %>/dwr/interface/UserSrv.js"></script>
    <script type="text/javascript" src="<%=path %>/dwr/engine.js"></script>   
    <script type="text/javascript" src="<%=path %>/dwr/util.js"></script> 
      

  7.   

    兄台的回复和我要表达的意思一样,不过我需要实现的是返回多项内容,本来想要实现返回一个JAVA的对象,比如一个User 的对象user,里面包括需要的用户信息,但不可以,只能是在反面把串拼好了返回来了,呵呵,但同样谢谢你!!!