空指针异常了,就是说你可能操作了一个实际为null的东东贴代码吧。

解决方案 »

  1.   

    你取出来的数据有没有转化,对比(equals(""))
    你从request种取数据页存在同样的问题
      

  2.   

    确实用了equals("0"),equals(""),equals("null")等.
    部分源码:<head>
    <meta http-equiv="Content-Language" content="zh-cn">
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <meta name="GENERATOR" content="Microsoft FrontPage 4.0">
    <meta name="ProgId" content="FrontPage.Editor.Document">
    <%@ page contentType="text/html;charset=gb2312"%>
    <%@ include file="cAHead.jsp"%>
    <%@ page language="java" session="true"%>
    <%@ page import="java.sql.*"%><%@ page import= "java.io.*"%>
    <%@ page import="china.common.*"%>
    <jsp:useBean id="dbConn1" scope="page" class="china.common.dbConn" /><meta name="GENERATOR" content="Microsoft FrontPage 4.0">
    <meta name="ProgId" content="FrontPage.Editor.Document">
    <title>合同信息显示页面</title>
    <style TYPE="text/css">
    td {
    FONT-SIZE: 14px
    }
    </style>
    <%
    String listid="";
    int prodid;
    int quantity;
    String requests;
    double price;
    String sum="";
    String contractid;
    String sql;
    ResultSet RS;
    java.util.Date date=new java.util.Date();
    String allyid="";
    String place="";
    String deposit="";
    String receive="";
    java.util.Date paydate=new java.util.Date();
    String dest="";
    String trans="";
    String cost="";
    String status="";
    java.util.Date deadline=new java.util.Date();
    String breakitem="";
    String re="";
    String useragen="";
    String ucompany="";
    String acompany="";
    String allyagen="";
    String flag="";
    String pname;
    String ordflag="";
    String senflag="";
    %>
    <script language=Javascript>
         function back()
          {
            window.history.back();
          }
    </script>
    </head>
    <body>
    <%String pid=request.getParameter("pid");
    session.setAttribute("pid",pid);
    %>
    <font size="2">
    当前位置:>><a href="alContractlist.jsp">合同管理</a>>><%if(pid.equals("0")){%>合同确认<%}else{out.print("合同内容");}%></font>
    <center>
      <table border="1" width="659" height="52" bordercolor="#88C4FF" cellspacing="1">
      <%
        String userid = (String)session.getAttribute("lgdid");
       %>
       <%
        contractid = request.getParameter("contractid");
        sql="select allyid,date,place,deposit,receive,paydate,dest,trans,cost,status,deadline,breakitem,re,useragen,allyagen,flag from tblcontract where contractid='" +contractid + "'";
        //out.print(sql);
        RS = dbConn1.executeQuery(sql);
        if(RS.next())
        {
        allyid = RS.getString("allyid");
        date = RS.getDate("date");
        place = RS.getString("place");
        if((place == null)||(place.equals(""))||(place.equals("null")))
                {
                     place =" ";
                }
        deposit = RS.getString("deposit");
        receive = RS.getString("receive");
        paydate = RS.getDate("paydate");
        dest = RS.getString("dest");
        if((dest == null)||(dest.equals(""))||(dest.equals("null")))
                {
                     dest =" ";
                }
        trans = RS.getString("trans");
        cost = RS.getString("cost");
        status = RS.getString("status");
        if((status == null)||(status.equals(""))||(status.equals("null")))
                {
                     status =" ";
                }
        deadline = RS.getDate("deadline");
        breakitem = RS.getString("breakitem");
        re = RS.getString("re");
        if((re == null)||(re.equals(""))||(re.equals("null")))
                {
                     re ="  ";
                }
        useragen = RS.getString("useragen");
        allyagen = RS.getString("allyagen");
        flag = RS.getString("flag");
        }
         sql = "select company from tbluser where userid = '" + userid + "'";
         RS = dbConn1.executeQuery(sql);
         if(RS.next())
         {
            ucompany = RS.getString("company");
            
         }    
         sql = "select company from tblally where allyid = '" + allyid + "'";
         RS = dbConn1.executeQuery(sql);
         if(RS.next())
         {
            acompany = RS.getString("company");
            
         }
          sql="select sum(price*quantity) as sums from tblcproduct where contractid='" + contractid +"'";      
         RS=dbConn1.executeQuery(sql);      
         if(RS.next())      
         {      
           sum = RS.getString("sums");      
         }      
         
         %>
      

  3.   

    getParameter的参数都得到了?
    建议你用System.out.println(),跟踪一下,看看问题出在那里
      

  4.   

    我编了一个小程序测试了一下,
    (status.equals("")) 有问题。equals后面也是一个对象,而null不是一个对象,你的前一个或分支已经包含这个意思了。
    去掉这句话!
      

  5.   

    hackwater(劈水) :
    我已将所有equals(),equals(null),equals("")
    注释掉,但出错情况还是一样luckyfanjian(luckyfan):
    getParameter的参数没问题
      

  6.   

    看一下这个文件alCdetail$jsp.java:736
    看736行是什么,就大致知道是哪个对象为空了~
      

  7.   

    是不是都使用了相同的指针"RS"和"sql"的缘故
      

  8.   

    sql="select allyid,date,place,deposit,receive,paydate,dest,trans,cost,status,deadline,breakitem,re,useragen,allyagen,flag from tblcontract where contractid='" +contractid + "'";没有满足此条件的记录也会出现空指针,你把此sql语句用System.out.println(sql);在后台输出拷贝,然后在查询分析器中执行一下,看是否有记录输出,若没有记录输出,则为上述情况。