JDBC+JAVABEAN+Servlet+JSP MVC模组开发。运行JSP总是有空指针问题

hzr87792654 2016-10-19 02:55:14
楼主是刚毕业的编程小学弟,刚进入公司接到一个练习用的项目:
本地创建一个Oracle数据库,里面建立一个表格person,有一系列的数据。现在需要用JDBC+Servlet把数据库连接到JSP上让别的用户自己往数据库里增删改查,并且做到分页等等等等小功能。
代码基本上写好了,感觉code逻辑也没什么错,JSP上的格式引用应该也对,但是每次跑起来都会说我有空指针错误!每一页JSP都有空指针,排查以后大概指向了这一块 //获得分页显示的子集 的代码上(因为每一个JSP的报错都是因为用到了subResult这个指针)。现在想把这一块的JAVA CODE贴出来,求大佬帮忙看看到底哪个出现空指针了。

public void difpage(HttpServletRequest request,HttpServletResponse response) throws ClassNotFoundException,SQLException,
ServletException, IOException{
//String id = request.getParameter("id");
// String name = request.getParameter("Lastname");
ArrayList<data>result = select("","");
page pager = new page();
pager = setpage(request,response);
List<data> subResult = null;
int currentRecord=pager.getCurrentRecord();
if(currentRecord==0){
if(pager.getTotalRecord()<8){
subResult=(List<data>) result.subList(0,pager.getTotalRecord());
}

else {
subResult=(List<data>)result.subList(0, pager.getPageSize());
}
}
else if(pager.getCurrentRecord()+pager.getPageSize()<result.size()){
subResult=(List<data>)result.subList(pager.getCurrentRecord(), pager.getCurrentRecord()+pager.getPageSize());
}
else{
subResult=(List<data>)result.subList(pager.getCurrentRecord(), result.size());
}

request.setAttribute("pager", pager);
request.setAttribute("subResult", subResult);
request.getRequestDispatcher("layout.jsp").forward(request, response);
}
...全文
198 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
___d 2016-10-19
  • 打赏
  • 举报
回复
你在你贴的代码里打个断点,debug下不就知道哪一行报错了吗?
bcsflilong 2016-10-19
  • 打赏
  • 举报
回复
public void difpage(HttpServletRequest request,HttpServletResponse response) throws ClassNotFoundException,SQLException,
    ServletException, IOException{
        //String id = request.getParameter("id");
        //        String name = request.getParameter("Lastname");
        ArrayList<data>result = select("","");
        page pager = new page();
        pager = setpage(request,response);
        List<data> subResult = null;
        int currentRecord=pager.getCurrentRecord();
            if(currentRecord==0){
            if(pager.getTotalRecord()<8){
                 subResult=(List<data>) result.subList(0,pager.getTotalRecord());
             }
 
            else {
                subResult=(List<data>)result.subList(0, pager.getPageSize());
            }
        }
        else if(pager.getCurrentRecord()+pager.getPageSize()<result.size()){
            subResult=(List<data>)result.subList(pager.getCurrentRecord(), pager.getCurrentRecord()+pager.getPageSize());
        }
        else{
            subResult=(List<data>)result.subList(pager.getCurrentRecord(), result.size());
        }
         
        request.setAttribute("pager", pager);
        request.setAttribute("subResult", subResult);
        request.getRequestDispatcher("layout.jsp").forward(request, response);
    }
你重点看看你这几个if判断 我怀疑
ArrayList<data>result = select("",""); // 这里可能直接返回空
或者if判断那里导致subResult 根本就没有被赋值
nikyotensai 2016-10-19
  • 打赏
  • 举报
回复
自己看log,或调试呀,直接就到错的那行了,看也只能猜
内容概要:本文详细介绍了Anaconda的下载、安装与配置方法(2025最新版)。Anaconda是一个开源的Python/R数据科学集成开发平台,预装了1500多个科学计算库,并提供conda包管理和环境管理功能。文章首先列出了系统要求,接着分别讲述了适用于不同操作系统的下载方式,包括官方下载和国内镜像下载。然后,具体讲解了Windows、macOS和Linux三种操作系统的安装步骤,以及环境变量的手动配置方法。此外,还提供了验证安装是否成功的命令和配置国内镜像源的方法,以提高下载速度。最后,列出了一些常用conda命令和常见问题的解决方案。 适合人群:从事数据科学、机器学习领域的研究人员和开发者,特别是需要频繁使用Python科学计算库的用户。 使用场景及目标:①帮助用户快速搭建Python开发环境,尤其是需要多个Python版本共存或隔离环境的情况下;②解决因网络原因导致的下载速度慢的问题;③提供详细的安装指南,确保安装过程顺利进行;④指导用户正确配置环境变量,避免常见的安装后无法使用的错误。 阅读建议:由于Anaconda涉及多平台安装和配置,建议读者根据自己的操作系统选择相应的章节重点阅读,并严格按照步骤操作。对于初次使用者,建议先从简单的安装入手,再逐步学习环境管理和包管理的相关命令。

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧