/////////////////////////////////////////
//前台页面显示招标结果的内容暂时缺少名称显示部分
public List selectjggs()  throws IOException{
HttpServletRequest request = ServletActionContext.getRequest();
HttpServletResponse response = ServletActionContext.getResponse();     List list = new ArrayList();
    T01ZbZbgs comindex = null;
    System.out.println("111111111111");
    try {
    PreparedStatement   ps =connection.prepareStatement("select a.bh,a.zbbh  from T01_ZB_ZBGS a order by bh DESC");
      ResultSet rs = ps.executeQuery();
      System.out.println("zhixing 1");
      while (rs.next()) {
        comindex = new T01ZbZbgs();
        comindex.setBh(rs.getLong(1));
        System.out.println("zhixng 2");
String Zbbh = rs.getString(2);
System.out.println("zhixing 3");
if(Zbbh!=null){
System.out.println("zhixing 3");
System.out.println(Zbbh+"Zbbh");
T01ZbggXxb Zbmc = new T01ZbggXxb();
System.out.println("44");
 Zbmc = (T01ZbggXxb)baseDAO.findObjectById(T01ZbggXxb.class, Zbbh);
 System.out.println("55");
comindex.setT01ZbggXxb(Zbmc); System.out.println("执行5");
}else{ System.out.println("执行4");   
} System.out.println("执行4");
//         comindex.setT01ZbggXxb(Zbmc);
//         comindex.setContent(rs.getString(3));
//         comindex.setIssueTime(rs.getString(4));
        list.add(comindex);
      }
    }
    catch (SQLException ex) {
     ex.printStackTrace();
    }
    return list;   }
代码如上,打印的值都得到了,就是执行 Zbmc = (T01ZbggXxb)baseDAO.findObjectById(T01ZbggXxb.class, Zbbh);这句的时候就停止了,也不知道这块出了什么问题,在其他的方法里面是完全没问题的,只是这个用的Public List就出了这个问题?还是需要怎么更改一下呢?

解决方案 »

  1.   

    baseDAO实例化了吗?rs.getString(2)有数据吗?如果是null或"" 或是字符类型的你使用Integer.parseInt(rs.getString(2))是会出错的.baseDAO.findObjectById(T00UtilSysdict.class, Integer.parseInt(rs.getString(2)))有数据吗?如果没有数据强制性转换为(T00UtilSysdict)类型是会报 NullPointerException异常的.
      

  2.   

    +1 楼主不好意思了,我以为你发帖是一样的,复制,粘贴了,这个你看下baseDAO实例化了和)baseDAO.findObjectById(T01ZbggXxb.class, Zbbh);这个是不是null.
      

  3.   

    如楼主所说 只能是以下问题了baseDAO在什么地方实例化了?baseDAO.findObjectById(T01ZbggXxb.class, Zbbh);这个得到的不是null,否则强制性转换T01ZbggXxb类会报错.
      

  4.   

    楼上所说的实例化是啥意思呢?我在两个包里面的不同方法里使用的话一个是PUblic String 没有问题的,但是在这里Public list据出现问题了!能详细说下嘛!我不是太懂这个!
      

  5.   

    package com.klzb.action.index;import java.io.IOException;
    import java.io.PrintWriter;
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Timestamp;
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;import org.apache.struts2.ServletActionContext;import com.klzb.bo.T00UtilSysdict;
    import com.klzb.bo.T01NotesFj;
    import com.klzb.bo.T01NotesPublish;
    import com.klzb.bo.T01ZbWz;
    import com.klzb.bo.T01ZbZbgs;
    import com.klzb.bo.T01ZbZbtz;
    import com.klzb.bo.T01ZbygXxb;
    import com.klzb.bo.T01ZbggXxb;
    import com.klzb.bo.T03GysNotes;
    import com.klzb.bo.T03GysXxb;
    import com.klzb.bo.TSecurityOrganizations;
    import com.klzb.dao.BaseDAO;
    import com.klzb.filter.JDBConnection;
    import com.opensymphony.xwork2.ActionSupport;//�Թ�����Ϣ�IJ���
    public class index extends ActionSupport{
      private Connection connection = null; //�������ӵĶ���
      private PreparedStatement ps = null; //����Ԥ׼���Ķ���
      private JDBConnection jdbc = null; //������ݿ����Ӷ���
      private BaseDAO baseDAO; public BaseDAO getBaseDAO() {
    return baseDAO;
    } public void setBaseDAO(BaseDAO baseDAO) {
    this.baseDAO = baseDAO;
    }
    public index() {
        jdbc = new JDBConnection();
        connection = jdbc.connection; //���ù��췽��ȡ����ݿ�����
      }
    //前台页面信息内容发布的显示--通知公告
    public List gysxx()  throws IOException{
    HttpServletRequest request = ServletActionContext.getRequest();
    HttpServletResponse response = ServletActionContext.getResponse();     List list = new ArrayList();
        T03GysNotes comindex = null;
        try {
        PreparedStatement   ps =connection.prepareStatement("select top 5 a.bh,a.gysbh,a.xxlb  from T03_GYS_NOTES a order by bh DESC");
        
          ResultSet rs = ps.executeQuery();
          while (rs.next()) {
            comindex = new T03GysNotes();
            comindex.setBh(Integer.valueOf(rs.getString(1)));
            System.out.println("qqqqqqqqqqqqqqqqqqqqqq"+rs.getString(2));
        T03GysXxb gysbh = (T03GysXxb)baseDAO.findObjectById(T03GysXxb.class, Long.parseLong(rs.getString(2)));
        System.out.println("wwwwwwwwwwww"+gysbh);
            comindex.setT03GysXxb(gysbh);
            T00UtilSysdict xxlb = (T00UtilSysdict)baseDAO.findObjectById(T00UtilSysdict.class, Integer.parseInt(rs.getString(2)));
    //         Timestamp fbrq=Timestamp.valueOf(rs.getString(3));
            comindex.setT00UtilSysdict(xxlb);
            list.add(comindex);
          }
        }
        catch (SQLException ex) {
         ex.printStackTrace();
        }
        return list;   }
      

  6.   

    可能是baseDao 和 Zbbh 这两个东西为null,baseDao 可能没有实例化,Zbbh可能是数据库查出来就没有
      

  7.   

    你先看看有没有find
    如果没有找到
    空指针是很自然的事情