我是在弹出的子窗口里面编辑,如何在页面判断action已经执行完毕,即数据已修改完成之后关闭子窗口,并且刷新主页面。
我现在暂时是在STRUTS2映射文件里面让编辑完成之后跳转到编辑成功的页面弹出alert,然后点击确定关闭掉子窗口,但是父窗口怎么随着我点确定的时候再去执行查询的action一次呢?子窗口编辑页面:
<s:form action="circuit" namespace="/circuit" theme="simple">
<table>
<tr>
<td>
<s:hidden name="id" value="%{circuit.id}" />
</td>
</tr>
<tr>
<td>
院线名称:
</td>
<td>
<s:textfield label="院线名称" name="circuitname"
value="%{circuit.circuitname}" />
</td>
</tr>
<tr>
<td>
院线描述:
</td>
<td>
<s:textfield label="院线描述" name="description"
value="%{circuit.description}" />
</td>
</tr>
<tr><td>&nbsp;</td><td>&nbsp;</td></tr>
<tr>
<td align="right">
<s:submit action="circuit" method="edit" value="修改"></s:submit>
</td>
<td align="left">
<s:reset value="重置"></s:reset>
<button onclick="window.close()">
取消
</button>
</td>
</tr>
</table>
</s:form>编辑成功页面:
<html>
  <head>
    <title>编辑成功</title>
    <script type="text/javascript">
alert("编辑成功");
window.close();
</script>
  </head>
  
  <body onunload="window.opener.location.reload();">
  </body>
</html>父窗口的:
<s:iterator value="circuitList" id="cl">
<tr>
<td>
<s:property value="#cl.circuitname" />
</td>
<td>
<s:property value="#cl.description" />
</td>
<td>
<s:url id="delurl" action="circuit" namespace="/circuit"
method="delete">
<s:param name="id">
<s:property value="#cl.id" />
</s:param>
</s:url>
<s:a href="%{delurl}">delete</s:a>
<s:url id="ediurl" action="circuit" namespace="/circuit"
method="getById">
<s:param name="id">
<s:property value="#cl.id" />
</s:param>
</s:url>
<s:a href="#" onclick="openBrWindowInCentre('%{ediurl}',280,150)">edit</s:a>
</td>
</tr>
</s:iterator>

解决方案 »

  1.   

    你完成编辑以后,跳转到父页面去。。同时传一个状态位或者消息过去。。在前面页面onload里面判断你从后台传过来的那个标志。。如果有,就alert,没有就donothing
      

  2.   

    子窗口编辑页面JS:<script language="javascript">  
    function closethewindow()   
    {   
    var url="f.htm";//要刷新的窗口的页面或action url
    opener.document.location=url; 
    alert("编辑成功");
    window.close();
    }   
    </script>