JSP执行2次ACTION的问题的解决方法

发布时间:2021-01-16编辑:脚本学堂
Jsp执行2次Action,遇到这样的问题,应该如何解决呢?请参考下本文给出的解决方法吧。

在做一个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()"/>