我正在为我的应用程序使用带有磁贴的 Struts 2。
在应用程序中,我使用一个动作类说“A”,它具有不同的动作方法,如添加、*编辑*、保存、*保存成功*等。
在一个页面中,当我单击一个复选框时,我使用 window.open 方法通过调用操作类 A 的操作方法“edit()”打开一个弹出窗口,该操作方法执行一些数据库操作并将结果返回给弹出窗口。
执行一些修改后,我将表单提交给操作类 A 中名为“save()”的操作方法,并将结果页面返回到相同的弹出窗口。
问题是当我关闭弹出窗口时,该操作再次执行并在控制台和异常中显示空值。
我认为这可能是由于浏览器造成的,所以我在弹出窗口中的点击事件上尝试了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>
请帮我解决这个问题。