如题:无法取到list的值.在ACTION里面调用了DAO层的方法.返回是一个list。list.add(Bean)。
Bean bean = new Bean();
for(int i=0;i<list.size();i++){
    bean = (Bean)list.get(i);
    System.out.println(bean.getName());//这样是可以正常打印得到值
}
但是
for(int i=0;i<list.size();i++){
DitchMessagesBean l = (DitchMessagesBean)list.get(i);
System.out.println(l.getDitch_name()+"=========ditch_name======");

boolean bool = fileList.checkDitch(bean.getDitch_number());
if(bool){
request.setAttribute("messages", "渠道编码【"+bean.getDitch_number()+"】已经存在!请核对以后重新导入数据");
return mapping.findForward("error");
}else{
conn.setAutoCommit(false);
String sql = "insert into ditch_messages(ditch_name,ditch_number,inc_name,"+
"scale,linkman,linktel,fax,account_name,"+
"account_id,account_bank,finance_name,finance_tel)"+
"values(?,?,?,?,?,?,?,?,?,?,?,?)";
PreparedStatement ps = null;
ps = conn.prepareStatement(sql);
ps.setString(1, bean.getDitch_name());
ps.setString(2, bean.getDitch_number());
ps.setString(3, bean.getInc_name());
ps.setString(4, bean.getScale());
ps.setString(5, bean.getLinkman());
ps.setString(6, bean.getLinktel());
ps.setString(7, bean.getFax());
ps.setString(8, bean.getAccount_name());
ps.setString(9, bean.getAccount_id());
ps.setString(10, bean.getAccount_bank());
ps.setString(11, bean.getFinance_name());
ps.setString(12, bean.getFinance_tel());
count += ps.executeUpdate();
ps.close();
}
}这样以后就无法渠道值..不知道为什么?求教.....

解决方案 »

  1.   

    代码没贴权。commit在另外的条件里面判断才会commit.
    跟commit没关系。
    现在在循环里面转换list以后在打印就是空。
      

  2.   

    DitchMessagesBean是不是没有new 一个对象,直接强制转换的啊。
      

  3.   


    debug了.list有值的.
    但是DitchMessagesBean l = (DitchMessagesBean)list.get(i);这样以后还是没有值.
    我去掉其他代码直接输出很OK.全部有值.
    加上代码就是空了.郁闷..都不知道这是什么问题.也不报错..哎.
      

  4.   

    Bean 是DitchMessagesBean的父类,你在list中保存的Bean,而你取的却是这个对象的子类,你强投制类型转换也只能把Bean中存在的值给子类,你子类那些属性你根本就没有付过值,不为空才怪
      

  5.   


    怎么会没有值。DitchMessagesBean本来就是父类。
      

  6.   

    问题昨天早上解决了。debug的时候没去仔细看list的值。只管有值了就没去细看。后来细看。是因为excel表的问题。里面格式有问题。读取的第一行数据时空。所以就一直空了。
    谢谢大家了。哎。不够心细啊。害哪个问题搞了好久。