日期:2014-05-19  浏览次数:20598 次

【求助】一个关于JSP的问题
HTML code

....此处省略部分代码....
<%@page contentType="text/html" pageEncoding="ISO-8859-1"%>
<%@ page import="realEstate.*"%>

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<jsp:useBean id="db" class="realEstate.DataSource" scope="session"/>
<jsp:useBean id="my_search" class="realEstate.Search" scope="session"/>
<jsp:setProperty name="my_search" property="*" />

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Search Result</title>
    </head>
    <body>
        <%  
            ArrayList<Property> resultList = my_search.search(db);
        %>
...此处省略部分代码....
    </body>
</html>



上面是我一个作业的部分代码。中间<body>下面的那句出错了。
其中Property、Search和DataSource都是我自己写的类,放在一个叫realEstate的包里面。
search(DataSource db)是一个Search类里面的一个方法。不知道怎么回事,出错的那一句代码出现了NullPointerException错误。请教一下各位,有谁知道这是怎么回事?

------解决方案--------------------
DataSource.java:71
这个类的 71行出现空指针,你可以debug看下是什么参数为空
------解决方案--------------------
db为空吧,你打印下db看看有值没有?
------解决方案--------------------
71行出现空指针
这个问题对初学者蛮常见的
尤其是想在用同一个jsp文件同时发送和接收数据的时候

有几个地方楼主可以注意一下
1 在servlet里有没有设置request.setAttribute
2 javaBean文件有没有设置初始值(单纯的提取数据可能没事,但是如果牵扯到逻辑业务没有初始值很容易空指针)
3 如果楼主在javaBean文件里设置了有一个或多个参数的构造函数,注意在调用的时候哪怕是写一个没有内容的构造函数也一定要补上,否则也容易出现错误

希望对你有所帮助
以上