数组越界了,检查你的数组、ArrayList等有下标的数据类型。最好是debug一下

解决方案 »

  1.   

    那就可能是数据的问题了。比如一个ArrayList对象list,list中存放数据库表中的记录。你2个代码都有list.get(5)这样一段代码。但是一个表中有6条,一个有5条,肯定就有问题了
      

  2.   

    以上大家说的错误应该没有这种情况,不过你们说的错误也是经常出现的,我的主要是逻辑方面代码如下,望高手看看:
            DologinForm f = (DologinForm) form;// TODO Auto-generated method stub
    HttpSession sess = request.getSession();
    ActionMessages msgs=new ActionMessages();
    String uid=f.getUid();
    String pwd=f.getPwd();
    String type=f.getType();
    sess.setAttribute("uid",uid);
     //如果帐号和密码都对就不会出现报错,就会返回原页面(因为用户类型没选对,当然了,全对就会下一个页面了),但是帐号和密码有一个以上有错误就会报以上错//数据库连接:
    Session hs=HibernateSessionFactory.getSession();
              Criteria crit=hs.createCriteria(Users.class);
             crit.add(Restrictions.and(Restrictions.eq("uid", uid),Restrictions.eq("pwd", pwd)));
             List lst=crit.list();
             Users u=(Users)lst.get(0);
             if(!lst.isEmpty()){
              if((type.trim().equalsIgnoreCase("3"))&&(Integer.valueOf(type).equals(Integer.valueOf(u.getType())))){
              LoginUser lu = new LoginUser();
                   lu.setId(uid); lu.setPwd(pwd);  lu.setType(IConstants.ADMIN);
                     sess.setAttribute(IConstants.LU, lu);
              request.setAttribute("type","wrong.type");
              return mapping.findForward("s0");
             }
              if(type.trim().equalsIgnoreCase("2")&&(Integer.valueOf(type).equals(Integer.valueOf(u.getType())))){
              LoginUser lu = new LoginUser();
                   lu.setId(uid); lu.setPwd(pwd);  lu.setType(IConstants.ADMIN);
                     sess.setAttribute(IConstants.LU, lu);
              request.setAttribute("type","wrong.type");
              return mapping.findForward("s1");
              }
              else if(type.trim().equalsIgnoreCase("1")&&(Integer.valueOf(type).equals(Integer.valueOf(u.getType())))){
              LoginUser lu = new LoginUser();
                   lu.setId(uid); lu.setPwd(pwd);  lu.setType(IConstants.ADMIN);
                     sess.setAttribute(IConstants.LU, lu);
              request.setAttribute("type","wrong.type"); 
             return mapping.findForward("s2");
              }
       }
          else {    //报错处理
     Criteria crit2=hs.createCriteria(Users.class).add(Restrictions.eq("uid", uid));
                        List lst2=crit2.list();
                         if(lst2.isEmpty()){
       msgs.add("uid",new ActionMessage("wrong.uid"));
       saveErrors(request,msgs);
                             }else 
    msgs.add("pwd",new ActionMessage("wrong.pd"));
    saveErrors(request,msgs);
    }
               return mapping.getInputForward();
    }    
    }
      

  3.   

    问题应该出在 Users u=(Users)lst.get(0);
    判断一下lst的size是否为1先
      

  4.   

    检查一下字段设置,不要用text,用varchar