在做一个java项目时,发现在登陆页面点击登陆之后都会执行2次ACTION的代码,跟踪了好多天,终于找到问题的根源所在了。
在登录页login.jsp中,如果提交按钮写成如下的方式,则会提交两次:
1、js代码
复制代码 代码示例:
<script type="text/
javascript">
function loginFunc() {
var form = document.getElementById("form1");
form.submit();
}
</script>
2、html页面
复制代码 代码示例:
<form action="processLogin.action" method="post" id="form1">
<s:textfield name="username" cssClass="input" style="width:150px;" value="">
</s:textfield>
<s:password name="password" cssClass="input" style="width:150px;" value="">
</s:password> <input type="submit" onclick="loginSystem()"/>
</form>
原因分析:
以上代码中,submit类型本身就会提交到ACTION类;
onclick方法中又调用了一次submit提交方法,所以导致执行了两次ACTION的代码。
解决方法,修改为如下即可:
复制代码 代码示例:
<input type="button" onclick="loginSystem()"/>