我们有一个jsp 表单,它在一个Button Click 上被提交给一个Struts2 Action Class。从动作类,控制流向服务(java)类和DAO(Java iBatis)类。DAO 类调用 oracle pl/sql 过程。
问题:
查看 Action/Service/DAO & PL/SQL 过程中的日志语句表明,单击一次按钮就会调用它们 2/3 次。它执行的次数是相当随机的,但它从来没有一次(仅在部署在登台服务器中的代码中)。
奇怪的是,当我们的代码部署在我们的开发和生产服务器 (Websphere 7.1) 中时,此功能可以正常工作(仅调用一次)。当部署在我们的暂存服务器中时,完全相同的代码 (EAR) 会面临这个多次提交错误。
我们尝试了各种浏览器(IE 8 和 IE 9),只有当我们尝试访问部署在暂存服务器中的应用程序时才会出现此问题。
我们所有的开发、登台和生产 Websphere 服务器都具有相同的版本和补丁级别。
这是我们用来提交的javascript代码。
$(document).ready(function() {
mask();
var config = "${returnedCString}";
var f = "${flagS}";
if (f == "1"){
$.post('<%=request.getContextPath()%>/applyComp'
,function(data){
unmask();
$("#impactForm").attr('action','<%=request.getContextPath()%>/CompareForm');
$("#impactForm").submit();
}
);
}
}
问题是 POST 到以下 Struts Action 是多次发生的事情
$.post('<%=request.getContextPath()%>/applyComp'