我的web.xml如下 <?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" 
xmlns="http://java.sun.com/xml/ns/j2ee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  
   <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
      <param-name>config</param-name>
      <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    <load-on-startup>2</load-on-startup>
 </servlet>
  <!-- Standard Action Servlet Mapping -->
  <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>
  
  <welcome-file-list>
    <welcome-file>login.jsp</welcome-file>
  </welcome-file-list>
</web-app>
struts-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!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>
 <form-beans>
<form-bean name="LoginForm" type="cn.itcast.LoginForm"></form-bean>
 </form-beans>
 <action-mappings>
<action path="/login" type="cn.itcast.LoginAction" name="LoginForm">
<forward name="loginSuccess" path="/LoginSuccess.jsp"></forward>
<forward name="loginFailure" path="/LoginFalure.jsp"></forward>
</action>
 </action-mappings>
</struts-config>启动tomcat没有问题,但是访问login.jsp以后 输入username和password提交以后 就报错
HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception javax.servlet.ServletException
org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:286)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause java.lang.NullPointerException
org.apache.struts.config.FormBeanConfig.createActionForm(FormBeanConfig.java:289)
org.apache.struts.config.FormBeanConfig.createActionForm(FormBeanConfig.java:357)
org.apache.struts.chain.commands.CreateActionForm.execute(CreateActionForm.java:92)
org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:305)
org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.

解决方案 »

  1.   

    tomcat报错如下
    Apache Tomcat/5.0.28
    2009-1-11 18:30:19 org.apache.coyote.http11.Http11Protocol init
    信息: Initializing Coyote HTTP/1.1 on http-8088
    2009-1-11 18:30:19 org.apache.catalina.startup.Catalina load
    信息: Initialization processed in 1015 ms
    2009-1-11 18:30:19 org.apache.catalina.core.StandardService start
    信息: Starting service Catalina
    2009-1-11 18:30:19 org.apache.catalina.core.StandardEngine start
    信息: Starting Servlet Engine: Apache Tomcat/5.0.28
    2009-1-11 18:30:19 org.apache.catalina.core.StandardHost start
    信息: XML validation disabled
    2009-1-11 18:30:19 org.apache.catalina.core.StandardHost getDeployer
    信息: Create Host deployer for direct deployment ( non-jmx ) 
    2009-1-11 18:30:19 org.apache.catalina.core.StandardHostDeployer install
    信息: Processing Context configuration file URL file:D:\Tomcat 5.0\conf\Catalina\localhost\balancer.xml
    2009-1-11 18:30:20 org.apache.catalina.core.StandardHostDeployer install
    信息: Processing Context configuration file URL file:D:\Tomcat 5.0\conf\Catalina\localhost\forum3.xml
    2009-1-11 18:30:20 org.apache.catalina.core.StandardHostDeployer install
    信息: Processing Context configuration file URL file:D:\Tomcat 5.0\conf\Catalina\localhost\manager.xml
    2009-1-11 18:30:20 org.apache.catalina.core.StandardHostDeployer install
    信息: Processing Context configuration file URL file:D:\Tomcat 5.0\conf\Catalina\localhost\sky123.xml
    2009-1-11 18:30:20 org.apache.catalina.core.StandardHostDeployer install
    信息: Processing Context configuration file URL file:D:\Tomcat 5.0\conf\Catalina\localhost\struttest1.xml
    2009-1-11 18:30:20 org.apache.catalina.loader.WebappClassLoader validateJarFile
    信息: validateJarFile(D:\workspace\struttest1\WebRoot\WEB-INF\lib\servlet-api.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
    2009-1-11 18:30:20 org.apache.struts.action.ActionServlet initChain
    信息: Loading chain catalog from jar:file:/D:/workspace/struttest1/WebRoot/WEB-INF/lib/struts-core-1.3.10.jar!/org/apache/struts/chain/chain-config.xml
    2009-1-11 18:30:21 org.apache.catalina.core.StandardHostDeployer install
    信息: Installing web application at context path /forum3 from URL file:D:/Tomcat 5.0/webapps/forum3
    2009-1-11 18:30:21 org.apache.catalina.startup.ContextConfig applicationConfig
    信息: Missing application web.xml, using defaults only StandardEngine[Catalina].StandardHost[localhost].StandardContext[/forum3]
    2009-1-11 18:30:21 org.apache.catalina.core.StandardHostDeployer install
    信息: Installing web application at context path /struts-blank-1.3.10 from URL file:D:/Tomcat 5.0/webapps/struts-blank-1.3.10
    2009-1-11 18:30:22 org.apache.struts.action.ActionServlet initChain
    信息: Loading chain catalog from jar:file:/D:/Tomcat%205.0/webapps/struts-blank-1.3.10/WEB-INF/lib/struts-core-1.3.10.jar!/org/apache/struts/chain/chain-config.xml
    2009-1-11 18:30:22 org.apache.struts.validator.ValidatorPlugIn initResources
    信息: Loading validation rules file from '/org/apache/struts/validator/validator-rules.xml'
    2009-1-11 18:30:22 org.apache.struts.validator.ValidatorPlugIn initResources
    信息: Loading validation rules file from '/WEB-INF/validation.xml'
    2009-1-11 18:30:23 org.apache.catalina.core.StandardHostDeployer install
    信息: Installing web application at context path /hello from URL file:D:\Tomcat 5.0\webapps\hello
    2009-1-11 18:30:23 org.apache.catalina.core.StandardHostDeployer install
    信息: Installing web application at context path /jsp-examples from URL file:D:\Tomcat 5.0\webapps\jsp-examples
    2009-1-11 18:30:23 org.apache.catalina.core.StandardHostDeployer install
    信息: Installing web application at context path /myweb from URL file:D:\Tomcat 5.0\webapps\myweb
    2009-1-11 18:30:23 org.apache.catalina.core.StandardHostDeployer install
    信息: Installing web application at context path  from URL file:D:\Tomcat 5.0\webapps\ROOT
    2009-1-11 18:30:23 org.apache.catalina.core.StandardHostDeployer install
    信息: Installing web application at context path /servlets-examples from URL file:D:\Tomcat 5.0\webapps\servlets-examples
    2009-1-11 18:30:23 org.apache.catalina.core.StandardHostDeployer install
    信息: Installing web application at context path /tomcat-docs from URL file:D:\Tomcat 5.0\webapps\tomcat-docs
    2009-1-11 18:30:23 org.apache.catalina.core.StandardHostDeployer install
    信息: Installing web application at context path /webdav from URL file:D:\Tomcat 5.0\webapps\webdav
    2009-1-11 18:30:24 org.apache.coyote.http11.Http11Protocol start
    信息: Starting Coyote HTTP/1.1 on http-8088
    2009-1-11 18:30:24 org.apache.jk.common.ChannelSocket init
    信息: JK2: ajp13 listening on /0.0.0.0:8009
    2009-1-11 18:30:24 org.apache.jk.server.JkMain start
    信息: Jk running ID=0 time=1/36  config=D:\Tomcat 5.0\conf\jk2.properties
    2009-1-11 18:30:24 org.apache.catalina.startup.Catalina start
    信息: Server startup in 5149 ms
    2009-1-11 18:30:47 org.apache.struts.chain.ComposableRequestProcessor init
    信息: Initializing composable request processor for module prefix ''
    2009-1-11 18:30:47 org.apache.struts.chain.commands.AbstractExceptionHandler execute
      

  2.   

    警告: Unhandled exception
    java.lang.NullPointerException
    at org.apache.struts.config.FormBeanConfig.createActionForm(FormBeanConfig.java:289)
    at org.apache.struts.config.FormBeanConfig.createActionForm(FormBeanConfig.java:357)
    at org.apache.struts.chain.commands.CreateActionForm.execute(CreateActionForm.java:92)
    at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
    at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
    at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:305)
    at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
    at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
    at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
    at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
    at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
    at java.lang.Thread.run(Thread.java:595)
    2009-1-11 18:30:47 org.apache.struts.chain.commands.ExceptionCatcher postprocess
    警告: Exception from exceptionCommand 'servlet-exception'
    java.lang.NullPointerException
    at org.apache.struts.config.FormBeanConfig.createActionForm(FormBeanConfig.java:289)
    at org.apache.struts.config.FormBeanConfig.createActionForm(FormBeanConfig.java:357)
    at org.apache.struts.chain.commands.CreateActionForm.execute(CreateActionForm.java:92)
    at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
    at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
    at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:305)
    at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
    at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
    at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
    at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
    at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
    at java.lang.Thread.run(Thread.java:595)
    我知道是空指针错误但是不明白是哪个地方错了 
      

  3.   


    以下是loginform代码package cn.itcast;import org.apache.struts.action.ActionForm;public class LoginForm extends ActionForm {
         private String username=null;
         private String password=null;
         public String getUserName() {
    return username;
    }
    public void setUserName(String userName) {
    this.username = userName;
    }
    public String getPassword() {
    return password;
    }
    public void setPassword(String password) {
    this.password = password;
    }

    }以下是loginaction代码
    package cn.itcast;import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;public class LoginAction extends org.apache.struts.action.Action { /* (non-Javadoc)
     * @see org.apache.struts.action.Action#execute(org.apache.struts.action.ActionMapping, org.apache.struts.action.ActionForm, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
     */
    public ActionForward execute(ActionMapping mapping, ActionForm form,
    HttpServletRequest request, HttpServletResponse response)
    throws Exception {
    // TODO Auto-generated method stub
    LoginForm loginform=(LoginForm)form;
    if(loginform.getUserName().equals("itcast")){ 
    return mapping.findForward("loginSuccess");
    }
    else {
    return mapping.findForward("loginFailure");
    }
    }
                 

    }
    麻烦高人帮我找下错误的原因十分感谢 主要是刚学习使用struts
      

  4.   

     <%@ page language="java"  pageEncoding="gb2312"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
      </head>
      
      <body>
    <form action="<%=request.getContextPath() %>/login.do" method="post"> 
     username <input type="text" name="username"><br>
     password <input type="password" name="password"><br>
    <input type="submit" value="login">
    </form>
      </body>
    </html>
    这个是login.jsp的代码
      

  5.   

    你的action action="<%=request.getContextPath() %>/login.do" method="post">  直接login.do不就可以了 天上request.getContextpath()是做什么?
      

  6.   

    不行 不是这个问题 前面哪个是这个工程的path啊
      

  7.   

    如果只用login.do的话 报错
    HTTP Status 404 - /login.do--------------------------------------------------------------------------------type Status reportmessage /login.dodescription The requested resource (/login.do) is not available.
    --------------------------------------------------------------------------------
      

  8.   

    以下是loginform代码
    Java codepackage cn.itcast;import org.apache.struts.action.ActionForm;public class LoginForm extends ActionForm {
         private String username=null;
         private String password=null;
         public String getUserName() {
            return username;
        }
        public void setUserName(String userName) {
            this.username = userName;
        }
        public String getPassword() {
            return password;
        }
        public void setPassword(String password) {
            this.password = password;
        }
        
    }你仔细检查一下你的FormBean,定义出错
    Bean的基本原则有三:
    一:属性要是是private,并且要有setXX方法
    二:要有getXX方法,当然get方法必须是公共的
    三:要有无参的构造函数,(你的属性的初始化可以在里面进行执行)
      

  9.   

      private String username=null; 
        private String password=null; 
    改成了
        private String username; 
        private String password; 
    无参数的构造函数是系统会自动添加 应该不用添加
    修改完没用
      

  10.   

    action="<%=request.getContextPath() %>/login.do
    直接action="/login.do" 不行吗
    真是你说的上面报500错误吗,500错误不是路径的错误,是后台编译内部出错吧
    本应该不会出现这个问题的,因为/就代表这项目的根路径
      

  11.   

    对,还有你Struts的jar包导入进来了吗
    并且你一开始建项目时有没有选择struts的版本
    这些细节你都要注意
      

  12.   

    路径有问题把路径写规范  --login.dohtml <form> 不带/代码没有什么大的问题! 
      

  13.   

    loginform为null了,仔细debug一下,看看值传过去了吗.
      

  14.   

    <html:form action="<%=request.getContextPath() %>/login.do" method="post"> 
    </html:form>
      

  15.   

    loginform为空?配置没问题 框架不是应该自动传递么 怎么会为空呢?
      

  16.   

    LoginForm  写上一个公共构造
      

  17.   

    package cn.itcast;import org.apache.struts.action.ActionForm;public class LoginForm extends ActionForm {
         private String username=null;
         private String password=null;
         public String getUsername() { //这里修改成这样
            return username;
        }
        public void setUsername(String userName) {//这里修改成这样
            this.username = userName;
        }
        public String getPassword() {
            return password;
        }
        public void setPassword(String password) {
            this.password = password;
        }
        
    }Username 和 文本框中的username对应
    UserName 就必须和文本框名称为userName的对应,大小写区分。
    你把文本框的修改成userName估计也行,我没试过。。
      

  18.   

    这个没有问题啊 都是一样的名字啊 这里的
    private String username;
    private String password;
    和longin.jsp里面的
    <input type="text" name="username">
    是一样的啊
      

  19.   

    setUsername
    getUsername不是setUserName和getUserName
      

  20.   

    public String getUsername() { //这里修改成这样
            return username;
        }
    }属性的名字无所谓
    但是方法的名字必须是文本框的名字首字母大写struts自动封装方法是根据set+文本框的name属性首字母大写拼装的,但是不大写首字母之后的单词你文本框是usernamestruts找的是setUsername方法,而不是setUserName方法。你的form里没有setUsername方法。
      

  21.   

    停止tomcat 重新部署网站,重新运行试下
      

  22.   

    longinform修改成了以下package cn.itcast;import org.apache.struts.action.ActionForm;public class LoginForm extends ActionForm {
         private String username;
         private String password;
         public LoginForm() {
          
         }
    /**
     * @return the username
     */
    public String getUsername() {
    return username;
    }
    /**
     * @param username the username to set
     */

    public void setUsername(String username) {
    this.username = username;
    }
    /**
     * @return the password
     */
    public String getPassword() {
    return password;
    }
    /**
     * @param password the password to set
     */
    public void setPassword(String password) {
    this.password = password;
    }

        

    }
      

  23.   

    loginAction代码如下
    package cn.itcast;import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;public class LoginAction extends Action { /* (non-Javadoc)
     * @see org.apache.struts.action.Action#execute(org.apache.struts.action.ActionMapping, org.apache.struts.action.ActionForm, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
     */
    public ActionForward execute(ActionMapping mapping, ActionForm form,
    HttpServletRequest request, HttpServletResponse response)
    throws Exception {
    // TODO Auto-generated method stub
    LoginForm loginform=(LoginForm)form;

    System.out.println(loginform.getUsername());
    if(loginform.getUsername().equals("itcast")){ 
    return mapping.findForward("loginSuccess");
    }
    else {
    return mapping.findForward("loginFailure");
    }
    }
                 

    }
      

  24.   

    你使用的是什么?直接使用tomcat么?
      

  25.   

    我是在myeclipse里面建立的工程
    然后在tomcat的localhost的目录下建立了一个struttest.xml
    里面就是
    <Context path="/lilytest" reloadable="true" docBase="D:\workspace\struttest1\WebRoot" workDir="D:\workspace\struttest1\WebRoot" />
      

  26.   

    我用的是自己的tomcat不是myeclipse自带的
      

  27.   

    setUserName改为setUsername
    然后重启服务器试试!!
      

  28.   

    你这样理解就是错了,表单的username跟password是与setUsername,getUsername,setPassword,getPassword对应的,与private String username,private String password无关,而你setUserName跟getUserName是错的,应该是setUsername与getUsernam,n不要大写
      

  29.   

    Java codepackage cn.itcast; import org.apache.struts.action.ActionForm; public class LoginForm extends ActionForm { 
        private String username=null; 
        private String password=null; 
    //////begin
        public String getUserName() {   //这个地方不能这么些啊,匹配不上,所以你在页面上面输入的数据根本action中就没有获到。修改为getUsername();下面也是如此
            return username;            //建议你这个东西不要手写,以免出现错误,可以在属性上面右键source,然后里面的generate getter and setter这里面就可以
                                        //选择了,而且属性这里面的属性是不用初始话的!
                                             //还有个建议,有问题了,可以debug以下。很容易就找到错误了!加油
        }  
        public void setUserName(String userName) { 
            this.username = userName; 
        } 
        public String getPassword() { 
            return password; 
        } 
        public void setPassword(String password) { 
            this.password = password; 
        } 
    ///////end 
      

  30.   

    我也出现和楼主类似的错误,不过是以下地方写错了
    <form-bean name="LoginForm" type="cn.itcast.LoginForm"></form-bean>
     </form-beans>
     <action-mappings>
    <action path="/login" type="cn.itcast.LoginAction" name="LoginForm">看了这个帖子才找到的,谢谢大家
      

  31.   

    我也遇过这样的错误,开始的时候我也是找半天 ,都找不到错误,
    结果发现是struts-config.xml里面的错误
    <form-beans>
    <form-bean name="loginForm" type="com.itast.struts.LoginForm"/>
    </form-beans>
    错误的原因写成了<form-bean name="loginForm" type="com.itast.struts.LoginForm">
    </form-bean>
      

  32.   

    我也出现这个错误,其实是struts配置文件出错,我正确是:<form-bean name="usersForm" type="org.zwb.webapp.form.demo.UsersForm" />
    把它写成小写了。<form-bean name="usersForm" type="org.zwb.webapp.form.demo.usersForm" />