仅仅用了个struts1.2 做了个登录。  就出现空指针错误了。
   很是悲催。一直找不到,很无辜啊!!
javax.servlet.ServletException: java.lang.NullPointerException
org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:535)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:433)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause java.lang.NullPointerException
com.yourcompany.login.LoginAction.execute(LoginAction.java:19)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
public class LoginAction extends Action { @Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {

LoginForm loginForm=(LoginForm)form;
if(loginForm.getLoginname().equals("qwe")){

return mapping.findForward("LoginSuccess");

}else{

return mapping.findForward("LoginFail");
}
}

}  这个是LOGINACTION 第十九行 用红色标记出来了。public class LoginForm extends ActionForm {
private String loginname=null;
private String password=null;
public String getLoginname() {
return loginname;
}
public void setLoginname(String loginname) {
this.loginname = loginname;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}

} LoginForm。java
<struts-config>
  <data-sources />
  <form-beans>
   <form-bean name="loginForm" type="com.yourcompany.login.LoginForm"></form-bean>
  </form-beans>
  
  <global-exceptions />
  <global-forwards />
  <action-mappings >
   <action 
   path="/login" type="com.yourcompany.login.LoginAction" name="loginForm">
   <forward name="LoginSuccess" path="/loginsuccess.jsp"></forward>
   <forward name="LoginFail"  path="/loginfail.jsp"></forward>
   </action>
  </action-mappings>
  <message-resources parameter="com.yourcompany.struts.ApplicationResources" />
</struts-config>    struts-config.xml
 <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>
    <init-param>
      <param-name>debug</param-name>
      <param-value>3</param-value>
    </init-param>
    <init-param>
      <param-name>detail</param-name>
      <param-value>3</param-value>
    </init-param>
    <load-on-startup>0</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>   web.xml

解决方案 »

  1.   

    login的19行是哪句?
    看配置文件LoginForm loginForm=(LoginForm)form;这行应该是没问题
    问题应该出现在这句loginForm.getLoginname().equals("qwe");
    loginForm.getLoginname()是空
    你去你的提交页面上看看有没有提交loginname这个字段就行了呗,或者把你的页面代码贴出来
      

  2.   

    关键的jsp代码没贴出来。
    你的jsp里应该有form 对应的action为 /login.do
    然后里面有name为loginname和password的表单元素。
      

  3.   

    在提交时Action=login.do  你看仔细了,你的字段名字
    loginname写的对不
      

  4.   

     </head>
      
      <body>
        <form action="<%=request.getContextPath() %>/login.do" method="post">
        Loginname:<input type="text" name="Loginname"><br>
        Password:<input  type="password" name="password"><br>
        <input type="submit" value="login">
        </form><br>
      </body>
    这个是JSP页面代码!~另外我说的 19行 就是if(loginForm.getLoginname().equals("qwe")){  这个!
      

  5.   

    打断点,用debug模式启动跟一下就知道了
      

  6.   

    已经解决了,,,谢谢了 !~~是JSP里面页面代码中的    name 属性 大小写 写错了!失误。谢谢大家了!
      

  7.   

    loginForm.getLoginname()
    这个是null