2011-10-28 4 views
1

struts.xmlStruts2の新しいウィンドウでフォームやショーの結果を提出

<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で、私は送信ボタンをクリックする必要があります新しいウィンドウでPage jsp/thankyou.jspのアクションで定義されたow結果変数は、struts.xmlとしてフォームを送信した後にeditTracker.jspページがまだそこにとどまっていますが、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; 
     } 

は、私は同様に、新しいウィンドウのためのいくつかの書式設定を行ってきました。

よろしくお願いいたします。

関連する問題