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

Struts2+ireport 子报表传值类型错误
问题是这样的  代码不在手边 我就写伪码吧 ireport以JavaBean作为数据源
首先是主bean_A
bean_A{
      private  String aa;
      private  String bb;
      private  List<bean_B> b_list;
      //-----set/get 省略
}

bean_b{
     private  String cc;
     private  String dd;
     //-----set/get 省略
}

我在XML文件里配置数据源为List<bean_A> 类型的一个list,将其内部的b_list 传给子报表,因为b_list在主报表里是个field值  所以用
new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{b_list})
子报表以bean_b获得field字段
结果报下面错误:

Servlet.service() for servlet default threw exception
org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object 'org.apache.struts2.views.jasperreports.ValueStackDataSource@11d3ec8' with class 'org.apache.struts2.views.jasperreports.ValueStackDataSource' to class 'java.util.List'
at org.codehaus.groovy.runtime.typehandling.DefaultTypeTransformation.castToType(DefaultTypeTransformation.java:340)
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.castToType(ScriptBytecodeAdapter.java:632)
。。。


------解决方案--------------------
楼主 你的这个问题解决了吗 我也遇到这个问题了现在 急需解决 
------解决方案--------------------
楼主 请问你这个问题怎么解决掉 
------解决方案--------------------
记得是换了报表格式,不是很清楚了