2011-10-28 68 views
1

struts.xml的struts2的提交表单,并显示结果在新窗口中

<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中,我需要点击提交按钮sh ow结果变量在页面jsp/thankyou.jsp中的操作在新窗口中定义,editTracker.jsp页面仍然保留在提交表单后,因为struts.xml已配置,但我无法在jsp/thankyou.jsp中获取结果,因为它是在saveTracker表单提交之前弹出。

回答

2

你可能会更好通过ajax提交表单,然后打开新窗口。

如果您使用普通请求提交表单,页面将会更新;这就是它的工作方式。如果您的意思是表单提交再次重新载入相同的页面,那很好,但您仍然需要在打开新窗口之前与服务器交互。

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; 
     } 

我已经做了一些格式的新窗口也是如此。

问候。

相关问题