本人新人一枚,在学springmvc,报空指针异常能帮忙看看嘛
public class LoginController extends  SimpleFormController{
private String showUser;
private String errPage;
public String getErrPage() {
return errPage;
}
public void setErrPage(String errPage) {
this.errPage = errPage;
}
public LoginController(){
setCommandClass(User.class);
}
protected ModelAndView onSubmit(Object command,BindException exception)throws Exception{
User user = (User) command;
LoginDao log = new LoginDao();
if(user.getUser().equals("")){
return new ModelAndView(getErrPage(),"error","用户名不能为空!");
}
if(user.getPwd().equals("")){
return new ModelAndView(errPage,"error","密码不能为空!");
}
if(user.getPwd().length()<6){
return new ModelAndView(errPage,"error","密码不能少于6位!");
}
if(log.isExist(user.getUser(),user.getPwd())){
return new ModelAndView(getShowUser(),"user",user);
}
return new ModelAndView(errPage,"error","账号或密码错误!");

}
public class LoginDao {
public boolean isExist(String username,String password){
Connection conn=DBManager.getConn();
boolean result=false;
String sql="select * from login where name=? and password=?";
PreparedStatement ps=null;
ResultSet rs=null;
try {
ps=conn.prepareStatement(sql);
ps.setString(1, username);
ps.setString(2, password);
rs=ps.executeQuery();
if(rs.next()){
result=true;
}
} catch (SQLException e) {
e.printStackTrace();
}finally{            
DBManager.closeAll(rs, ps, conn);        
}
return result;
}
}
前面几个if判断都能执行并跳转但一运行到这个方法就报错
该方法在测试类中是可以运行的
public class Test {
public static void main(String[] args) {
LoginDao log = new LoginDao();
System.out.println(log.isExist("zhangsan","123456"));
}
}是不是还要找spring-servlet中配置?还是别的

解决方案 »

  1.   

    mysql的jar包没有添加到工程中。
      

  2.   

    从提示来看,缺jar包
      

  3.   

    com.mysql.jdbc.Driver    not found
    DBManager.getCon();贴出来就知道了
      

  4.   

    那为什么在测试类里面可以执行,并且这个classnotfound有时报有时不报
      

  5.   

    那为什么在测试类里面可以执行,并且这个classnotfound有时报有时不报
    要放到工程的lib下面
      

  6.   

    classnotfound的问题解决了就这个空指针异常还有问题
      

  7.   

    空指针异常,debug跟进去看下哪个是空就知道了
      

  8.   

    用到spring了吗,spring管理以后,controller直接new  service或者dao都会报NPE,意思没有注入
      

  9.   

    if("".equals(user.getUser()))
      

  10.   

    空的三种判断 null , "" , "null"  ,你的用户名没有注入成功,所以报空指针,可能实体属性名与表单中的属性名没有匹对
      

  11.   

    (user.getUser(),user.getPwd() 里头有空吧
      

  12.   

    你前端的 jsp代码贴出来看看,是不是你的 command对象为null啊?
      

  13.   

    缺少 mysql jar 包吧
      

  14.   

    rs=ps.executeQuery();
                if(rs.next()){
                    result=true;
                }
    问题应该出在这句上,执行executeQuery()方法的时候sql没有查到数组,导致rs.next()方法取下一条数据的时候报出了空指针。