アプリケーションにタイル付きのStruts2を使用しています。
アプリケーションでは、 add、* edit *、save、*savesuccess*などのさまざまなアクションメソッドで「A」と言うアクションクラスを使用しています。
ページで、チェックボックスをクリックしているときに、window.openメソッドを使用して、データベース操作を実行し、結果をに返すアクションクラスAのアクションメソッド "edit()"を呼び出して、ポップアップウィンドウを開きます。ポップウィンドウ。 いくつかの変更を実行した後、アクションクラスAの「save()」という名前のアクションメソッドにフォームを送信すると、結果ページが同じポップウィンドウに返されます。問題は、ポップウィンドウを閉じると、アクションがもう一度実行され、コンソールと例外にnull値が表示されることです。
ブラウザが原因である可能性があると思ったので、ポップウィンドウのクリックイベントでevent.returnValue = falseを試しましたが、それでも問題が発生しています。
struts2のトークンインターセプターについて知りました。しかし、ページでタグを使用していると、404エラーが表示されます。
タイルを使用したstruts2でのトークンインターセプターの使用に関連するいくつかの例を提供してくれた人に感謝します
。Struts.xml
<action name="*Com" method="{1}" class="com.act.A">
<result name="add" type="tiles">add</result>
<result name="edit" type="tiles">edit</result>
<result name="save" type="tiles">save</result>
<result name="savesuccess" type="tiles">savesuccess</result>
親ページのポップウィンドウのオープンコード:
editwindow=window.open("editCom?id="+id+"&name="+name+"..and son on","edit","width=605px,height=270px,channelmode=no,left=250px,location=no,menubar=no,status=no,titlebar=no,toolbar=no,top=250px,scrollbars=yes,resizable=no");
Popwindowウィンドウフォーム送信コードの編集
<form name="editpage" action="saveCom" method="post">
..........
送信ボタンをクリックすると、同じポップウィンドウに次のような新しいページが開きます
<html>
<script type="text/javascript">
function check1(){
window.opener.location="savesuccessCom";
}
</script>
<body onunload="check1">
<form name="editsave" method="post" action="" >
.....
<p>Changes Saved Successfully</p>
<input type="button" name="Saved" id="Save" value="Save" onclick="self.close();event.returnValue=false;"/>
</form>
</body>
</html>
この問題を解決するのを手伝ってください。