struts.xml中
<action name="run" class="editTrackerAction" method="run">
<result name="input">/jsp/editTracker.jsp</result>
</action>
editTracker.jsp
<s:form method="post" name="saveTracker" id="saveTracker">
<input type="submit" name="executeEntityButtonName"
id="executeEntityOnTableSubmit" value="Run Entity" onclick="executeEntityOnTable();">
* .js有功能
function executeEntityOnTable() {
document.saveTracker.action="run";
document.saveTracker.onsubmit=window.open('jsp/thankyou.jsp', 'executeEntityOnTable', 'width=450,height=300,status=yes,resizable=yes,scrollbars=yes');
document.saveTracker.submit();
}
在Page editTracker.jsp中,我需要单击“提交”按钮以在新窗口中显示在页面jsp / thankyou.jsp中定义的结果变量,在提交表单后,editTracker.jsp页面仍然保留在那里,配置为struts.xml,但是我无法在jsp / thankyou.jsp中得到结果,因为它在saveTracker表单提交之前弹出。
答案 0 :(得分:2)
您可能最好通过ajax然后打开新窗口提交表单。
如果您提交包含正常请求的表单,该页面将会更新;这就是它的工作方式。如果您的意思是表单提交再次重新加载相同的页面,那很好,但您仍然需要在新窗口打开之前与服务器进行交互。
答案 1 :(得分:0)
尝试使用下面的表单,并使用以下javascript函数。
<form name="myForm" action="myaction.do" method="post"
onsubmit="return createTarget(this.target)" target="formtarget">
javascript函数....
function createTarget(t){
var left = (screen.width/2)-(700/2);
var top = (screen.height/2)-(550/2);
window.open("", t,"status = 1,height = 550,width = 700,resizable = 1,left="+left+",top="+top);
return true;
}
我也为新窗口做了一些格式化。
的问候。