===============struts-config.xml========================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.0//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_0.dtd">
<struts-config>
  <form-beans>
    <form-bean name="logonfom" type="com.test.struts.LogonForm" />  </form-beans>
  <global-forwards>
     <forward name="failed" path="/failed.do" redirect="true"/>
        <forward name="regist" path="/wuwu.jsp" redirect="true"/>
  </global-forwards>
  <action-mappings>
     <action name="logonfom" type="com.test.struts.LogonAction" input="/logon.jsp" validate="true" scope="session" path="/logon" >
<forward name="success" path="/failed.do" redirect="true" />
</action>
<action path="/overview" forward="/wuwu.jsp"/>
<action path="/failed" forward="/wuwu.jsp"/>
  </action-mappings></struts-config>
========LogonForm.java========================
package com.test.struts;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionMapping;
/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2004</p>
 * <p>Company: </p>
 * @author not attributable
 * @version 1.0
 */public class LogonForm extends ActionForm {
  private String password = "aa";
  private String name = "bbb";
  public LogonForm(){}
  public String getPassword() {
    return password;
  }
  public String getName() {
    return name;
  }
  public void setPassword(String password) {
    this.password = password;
  }
  public void setName(String name) {
    this.name= name;
  }  public ActionErrors validate(ActionMapping arg0,HttpServletRequest arg1) {
    ActionErrors errs = new ActionErrors();
    if(name==null || password==null || name.equals("a") || password.equals("")) {
      ActionError err = new ActionError("error.logon");
      errs.add("password",err);
    }
    return errs;
  }
  public void reset(ActionMapping actionMapping, HttpServletRequest httpServletRequest) {
  }
}
=======LogonActoion===============
package com.test.struts;import org.apache.struts.action.Action;
import java.lang.reflect.InvocationTargetException;
import java.util.Locale;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.util.MessageResources;
/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2004</p>
 * <p>Company: </p>
 * @author not attributable
 * @version 1.0
 */public final class LogonAction extends Action {
  public LogonAction()
  {
    System.out.print("hello");
  }
  public ActionForward execute(ActionMapping mapping,ActionForm form,
                               HttpServletRequest request,
                               HttpServletResponse response) throws Exception
  {
      Locale locale = getLocale(request);
      HttpSession session = request.getSession();
      LogonForm logonform = (LogonForm) form;      System.out.print("PATH: " + mapping.findForward("success").getPath());
      return mapping.findForward("success");  
  }
  }

解决方案 »

  1.   

    如果我把
    public ActionForward execute(ActionMapping mapping,ActionForm form,
                                   HttpServletRequest request,
                                   HttpServletResponse response) throws Exception
    改为
    public ActionForward perform(ActionMapping mapping,ActionForm form,
                                   HttpServletRequest request,
                                   HttpServletResponse response) 
    好像是可以的,请问这是什么原因?
      

  2.   

    你用的struts是1.0的这个看你的struts-config.xml的开头就知道了,
    execute方法只有在struts1.1以上的版本才支持。