struts2+ireport3.5.1 结合开发报表程序,数据库连接成功,list中也有值,前台测试页面也有数据,但是在转向jasper的时候却在页面上显示为null,这让人很恼火。
pdf,html格式的都无法显示数据,我下了些别人的例子,做了测试,别人的数据能够读出来,附加到我的代码上,没有问题,也能显示。配置也清楚,没什么疑问。
于是我开始怀疑ireport版本的问题,下了个ireport3.0.0 测试了一下,只能显示pdf格式的,数据能读出来,能读就是好事,没有问题。
别人的版本我不清楚是什么,下面附上详细代码说明,还望高手相助......
struts.xml配置
<package name="default" extends="struts-default,jasperreports-default">
<action name="login" class="com.accp.demo.LoginAction">
<result name="success" type="jasper">
<param name="location">/report/FirstDemo.jasper</param>
<param name="format">HTML</param>
<param name="dataSource">list</param>
<param name="imageServletUrl">/images/px.</param>
</result>
<result name="error">
error.jsp
</result>
</action>
</package>action中相关代码:
//Userlogin是javabean,存放数据的,我做测试,没连到数据库。
Userlogin p1=new Userlogin(new Integer(2),"admin","admin");
list = new ArrayList<Userlogin>();
list.add(p1);

System.out.println("---------------------------------");
System.out.println("测试---list的大小为:"+list.size()); try {
String reportSource;
reportSource = ServletActionContext.getServletContext()
.getRealPath("/report/FirstDemo.jrxml");
File parent = new File(reportSource).getParentFile();
//将.jrxml模板文件编译成为.jasper文件,当然,其文件名可以指定,如果没指定,则与.jrxml文件名一样.只是后缀不同而已
JasperCompileManager.compileReportToFile(reportSource, new File(
parent, "/FirstDemo.jasper")
.getAbsolutePath());
} catch (Exception e) {
e.printStackTrace();
return ERROR;
}
return SUCCESS;web.xml配置<filter>
  <filter-name>struts2</filter-name>
  <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
  <init-param>
<param-name>config</param-name>
<param-value>
struts-default.xml,struts-plugin.xml,struts.xml
</param-value>
</init-param>
  </filter>