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 { public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception{

LoginForm loginForm = (LoginForm)form;

                  if(loginForm.getUsername().equals("test")){    //此行有什么错误
                           return mapping.findForward("loginSuccess");
}else {
return mapping.findForward("loginFailure");
}

}}
我用struts1.3.10做登陆验证是出现 NullPointerException 错误,上面标记的行,其它地方检查了几次应该没问题

解决方案 »

  1.   

    页面没有将值传过来,并且建议你的在form中的属性都初始化一下;就不会出现这个问题了。
      

  2.   

    getUsername()中获得的是空指针, 没赋值
      

  3.   

    LoginForm loginForm 为null
      

  4.   

    找到原因了  是login.jsp 中username拼写错了
      

  5.   

    一般 这样的问题 就是Form 里的属性和对应的方法名是否对应, 可能是属性名写错
      

  6.   

    在使用equals方法的时候经常会出现空指针
    可以使用
    ("fail").equals(str);
    这样写,即使str为空,只会返回false,而不是空指针
      

  7.   

    这样写:“test”.equalse(loginForm.getUsername().trim());