java.lang.IndexOutOfBoundsException: Index: 0, Size: 0解决方案

写登录验证的是否发现个BUG,密码帐号一旦出错,登录的话会报如题的bug,后来发现list这地方应该加一个判断,否则get不到东西,所以会报错
错误代码:

//登录验证
    @RequestMapping("/user/login.action")
    public User findByNameAndPs(User user) {
        // TODO Auto-generated method stub
        UserExample example=new UserExample();
        example.createCriteria().andUsernameEqualTo(user.getUsername()).andPasswordEqualTo(user.getPassword());
        List list=userMapper.selectByExample(example);
        User user1=list.get(0);
        return user1;
    }

正确代码:

//登录验证
    @RequestMapping("/user/login.action")
    public User findByNameAndPs(User user) {
        // TODO Auto-generated method stub
        UserExample example=new UserExample();
        example.createCriteria().andUsernameEqualTo(user.getUsername()).andPasswordEqualTo(user.getPassword());
        List list=userMapper.selectByExample(example);
        if(list.size()!=0){ //这个地方只能用size来判断,如果判断是否为null的话会报错的,因为list集合本身是不会为null的
            User user1=list.get(0);
            return user1;
        }else{          
            return null;
        }
    }

你可能感兴趣的:(个人BUG小记)