LogonAction.java:package app;import java.io.IOException;
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.action.ActionServlet;public final class LogonAction extends Action{
        //Validate credentials with busines tier
        /*
        public boolean isUserLogon(String username,String password)
                          throws UserDirectoryException{
                return (UserDirectory.getInstance().isValidPassword(username,password));
        }
        */
        public boolean isUserLogon(String username,String password){
                System.out.println(username+":"+password+" log on ...");
                if ((username=="TUD")&&(password=="Hustle"))
                {
                        return true;
                }
                else
                        return false;
        }        public ActionForward perform(ActionMapping mapping,ActionForm form,HttpServletRequest Request,HttpServletResponse Response)
                                throws IOException,ServletException{
                //Obtain username and password from web tier
                System.out.println("perform");
                String username=((LogonForm)form).getUsername();
                String password=((LogonForm)form).getPassword();
                //Validate credentials
                boolean validated=false;
                try{
                        validated=isUserLogon(username,password);
                }
                catch(Exception ude){
                        //couldn't connect to user directory
                        ActionErrors errors=new ActionErrors();
                        errors.add(ActionErrors.GLOBAL_ERROR,new ActionError("Error.logon.connect"));
                        saveErrors(Request,errors);
                        //return to input page
                        return (new ActionForward(mapping.getInput()));
                }
                //Save our logged-in user in the session,because we use it again later.
                HttpSession session=Request.getSession();
                session.setAttribute(Constants.USER_KEY,form);
                //Log this event,if appropriate
                //if (servlet.getDebug()>=Constants.DEBUG)
                {
                        StringBuffer message=new StringBuffer("LogonAction:User'");
                        message.append(username);
                        message.append("' logged on in session");
                        message.append(session.getId());
                        servlet.log(message.toString());
                }
                //return success
                System.out.println("welcome"+Constants.WELCOME);
                return (mapping.findForward(Constants.WELCOME));
        }
}                         
       
-------------------------------------------------------------------------------------Constants.java中定义了Constants.WELCOME、Constants.SUCCESS等。perform()一开始就加了打印语句,但是控制台里却没有打出来。

解决方案 »

  1.   

    你struts-config.xml中的action中怎么没有<forward>元素,你要ation往哪跳转啊。
      

  2.   

    转向的问题,你再仔细看看  return (mapping.findForward(Constants.WELCOME));在.do中对应的有没有一个.jsp页面,是不是完全的对应
      

  3.   

    rickhunterchen(千山鸟飞绝) ( ) 信誉:100  2006-05-12 12:07:00  得分: 0  
        你struts-config.xml中的action中怎么没有<forward>元素,你要ation往哪跳转啊。
      
     
    Struts In Action中就是这样写的。
    我理解的是在应用的LogonAction中根据应用处理的情况forward,比如最后一句:
    return (mapping.findForward(Constants.WELCOME));
      

  4.   

    to BlackSnail(粉红海蜗牛) 
    在你的struts-config.xml配置文件中的action也要有相应的 <forward name="welcome" path="/success.jsp">元素,不然就出现你的错误。
      

  5.   

    struts-config.xml改成这样了,tomcat重启了,现象如故。
    我觉得我肯定是忽略了什么,要不然我照着网上做了好几个例子都是这样。
    映射关系之类我也检查了,觉得没什么错了啊。<?xml version="1.0" encoding="ISO-8859-1" ?><!DOCTYPE struts-config PUBLIC
              "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
              "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd"><struts-config>
        <form-beans>
         <form-bean name="logonForm"
          type="app.LogonForm"/>
        </form-beans>
    <!-- ========================================= Global Exception Definitions -->    <global-exceptions>
            <!-- sample exception handler
            <exception
                key="expired.password"
                type="app.ExpiredPasswordException"
                path="/changePassword.jsp"/>
            end sample -->
        </global-exceptions>
    <!-- =========================================== Global Forward Definitions -->    <global-forwards>
            <forward
                name="logon"
                path="/Logon.do"/>
            <forward 
                name="welcome"
                path="/Welcome.do"/>
            <forward
             name="LogonSubmit"
             path="/LogonSubmit.do"/>
        </global-forwards>
    <!-- =========================================== Action Mapping Definitions -->    <action-mappings>
                <!-- Default "Welcome" action -->
                <!-- Forwards to Welcome.jsp -->
            <action
                path="/Welcome"
                forward="/pages/Welcome.jsp"/>

    <action
                path="/Logon"
                forward="/pages/logon.jsp"/>
                
            <action
                path="/LogonSubmit"
                type="app.LogonAction"
                name="logonForm"
                scope="request"
                validate="false"
                input="/pages/logon.jsp"/>
            
        </action-mappings>
    <!-- ============================================= Controller Configuration -->    <controller
           processorClass="org.apache.struts.tiles.TilesRequestProcessor"/>
    <!-- ======================================== Message Resources Definitions -->    <message-resources parameter="MessageResources" />    <plug-in className="org.apache.struts.tiles.TilesPlugin" >      <!-- Path to XML definition file -->
          <set-property property="definitions-config"
                           value="/WEB-INF/tiles-defs.xml" />
          <!-- Set Module-awareness to true -->
          <set-property property="moduleAware" value="true" />
        </plug-in>
      <!-- =================================================== Validator plugin -->  <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
        <set-property
            property="pathnames"
            value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/>
      </plug-in></struts-config>