2011-10-28 100 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; 
     } 

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

問候。

相關問題