我们有一个jsp表单,它在Button Click上提交给Struts2 Action Class。从Action类,控件流向Service(java)类和DAO(Java iBatis)类。 DAO类调用oracle pl / sql过程。
问题:
查看Action / Service / DAO&中的日志语句。 PL / SQL过程表明,单击一次按钮就会调用它们2/3次。它执行的次数非常随机,但它永远不会一次(仅在Staging服务器中部署的代码中)。
奇怪的是,当我们的代码部署在我们的开发和开发中时,此功能可以正常工作(仅调用一次)。生产服务器(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();
}
);
}
}
问题是对以下Struts Action的POST是多次发生的事情
$.post('<%=request.getContextPath()%>/applyComp'
答案 0 :(得分:1)
以这种方式添加提交操作:
$('.form_element').unbind('submit').bind('submit',function() {
// do stuff here...
});