首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

struts1.X关于表单提交时action执行两次的有关问题

2012-01-06 
struts1.X关于表单提交时action执行两次的问题今天写一个简单的登录功能,代码如下://

struts1.X关于表单提交时action执行两次的问题
今天写一个简单的登录功能,代码如下:
//=================================================================================
//============================ index.jsp =========================================
//=================================================================================
<%@ page language="java" contentType="text/html;charset=GBK"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  <base href="<%=basePath%>">
   
  <title>Welcome to myweb</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">  
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<script type="text/javascript">
function login()
{
  loginForm.submit();
}
</script>
  </head>
  
  <body>&nbsp;  
  This is my JSP page. <br>
  <html:form action="login?methods=login" method="POST">
  u:<html:text property="userName"></html:text><br/>
  p:<html:password property="passWord"></html:password>
  </html:form>
  <html:button property="s" value="submitform" onclick="login()"/>
  </body>
</html>


//=================================================================================
//======================= struts-config.xml ======================================
//=================================================================================
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE struts-config PUBLIC
  "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
  "http://struts.apache.org/dtds/struts-config_1_3.dtd">
<struts-config>
<display-name>display-name</display-name>
<description>myweb</description>
<form-beans>
<form-bean name="loginForm" type="com.myweb.bean.LoginForm" />
</form-beans>
<global-exceptions />
<global-forwards>
<forward name="error" path="/error.jsp" />
</global-forwards>

<action-mappings>
<action name="loginForm" parameter="methods"
type="org.springframework.web.struts.DelegatingActionProxy"
scope="request" validate="false" path="/login">
<forward name="login" path="/info/main.jsp" />
</action>
</action-mappings>

<controller />

<message-resources parameter="application.properties" />

<plug-in
className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation"
value="/WEB-INF/actionContext.xml" />


</plug-in>
</struts-config>

//=================================================================================
//======================= LoginAction.java ======================================
//=================================================================================
package com.myweb.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.log4j.Logger;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;

import com.myweb.bean.LoginForm;

public class LoginAction extends DispatchAction {

private final Logger logger = Logger.getLogger(LoginAction.class);
public ActionForward login(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws Exception {
LoginForm loginForm = (LoginForm)form;
logger.info(loginForm.getUserName() + ":" + loginForm.getPassWord());
return mapping.findForward("login");
}
}

===========================================================================================

每当点击按钮进行登录时,action总是被执行两遍,就是说log文件中存在两条logger.info()所打印出来的信息

大家帮忙解决一下,这是为什么?


[解决办法]
submit行为就提交了,然后再调用javascript的提交就2次了呗。
楼主换普通button调用javascript试试看呢?

good luck
[解决办法]
4楼是对的

热点排行