JSP学习笔记(一百零一):在struts2中使用JasperReports

1.JasperReports的用途

JasperReports是一个用Java开发的开源的程序库,使用户能够透过它,利用Java语言来开发具有报告功能的程序。JasperReports的模版采用XML格式,从JDBC数据库中撷取合适的资料,并把资料在屏幕、打印机显示,或以PDF、HTML、XLS、CSV及XML等各种格式储存。

JasperReports的报告模板可以以iReport之类的工具来制作,只要把报告储存成XML格式,就可以让JasperReport阅读,然后再编译成为.jasper档。

 

2.iReport的使用

首先到官方下载iReport,下载地址:http://sourceforge.net/project/showfiles.php?group_id=64348

下载安装后,运行iReport,我简要的介绍一下IReport的使用:

1)连接到数据库:菜单->Data->Connections/Data Sources,New,Database JDBC connection->Next,

这里我连的是oracle数据库。

2)执行查询:菜单->Data->Report Query,输入对应的sql语句

3)插入数据:查询完以后,会把查询到的字段都列出来,把字段拖到detail区域,执行(菜单->Build->Execute with active connection),可以看到效果

4)编译:菜单->Build->Compile,会编译成jasper格式的文件,供JasperReports的使用

5)使生成的PDF支持中文:需要把iText中的iTextAsian.jar包复制到iReport安装文件夹的lib文件夹中,或者通过菜单->Classpath添加。然后在对应有中文的地方,查看Properties(属性),修改下列数据:

PDF Font:STSong-Light

PDF embedded:勾选

PDF Encoding:UniGB-UCS2-H (Chinese Simplified)

6)相关:通过菜单Build->****** Preview,可以生成其他各种格式的预览,这些格式的预览需要到对应的文件夹去查看;通过菜单Options->Settings,可以修改相关的设置,比如修改软件的语言,或者生成预览,编译文件的路径等等

 

3.JasperReports的使用

我使用JasperReports是在Struts2的基础上使用的,单独使用的话,也差不太多。

1)与Struts2的整合:

把JasperReports的包添加到项目中:jasperreports-3.x.x.jar;

把iText的包添加到项目中:iText-2.x.x.jar、iText-rtf-2.x.x.jar、iTextAsian.jar;

把struts2的JasperReports插件添加到项目中:struts2-jasperreports-plugin-2.0.x.jar;

在struts.xml配置文件中添加如下内容:

< package  name ="default"  namespace ="/"  extends ="struts-default" >
    
< result-types >
        
< result-type  name ="jasper"
                class
="org.apache.struts2.views.jasperreports.JasperReportsResult"   />
    
</ result-types >

……
</ package >

 

2)添加一个Action类:

public   class  TestAction  extends  ActionSupport {
    
    
private  List queryList;
    
    @Override
    
public  String execute()  throws  Exception {
        queryList 
=  searchList();
        
return  SUCCESS;
    }

    
public  List getQueryList() {
        
return  queryList;
    }

    
public   void  setQueryList(List queryList) {
        
this .queryList  =  queryList;
    }

}

 

3)修改struts2配置文件,输出结果:

         < action name = " test "   class = " TestAction " >
            
< result name = " success "  type = " jasper " >
                
< param name = " location " >/ WEB - INF / test.jasper </ param >
                
< param name = " dataSource " > queryList </ param >
                
< param name = " format " > PDF </ param >
            
</ result >
        
</ action >

访问test.action就会打开输出的报表了

我来讲下这几个参数的含义:

location 是指我们刚才用iReport编译生成的jasper文件

dataSource 是指我们执行的数据库查询结果,在testAction类里把这个结果查询出来,这个参数必须要有

format 是指需要输出的类型,默认是PDF,其他的输出类型有:XML、HTML、XLS、CSV、RTF ,注意这里一定要大写

除了这几个参数,还有下列参数:

delimiter 是指如果输出类型为CSV的话,指定分割符,默认为“,”

parse 是指是否解析location参数中的EL表达式,默认为 true

contentDisposition 指定disposition,默认为“inline”,如果设为“attachment”就是强制下载

documentName 输出的文件名

format 格式,默认为“PDF”,其他的有:CSV、HTML、RTF、XLS、XML

imageServletUrl 生成图形的路径

转载于:https://www.cnblogs.com/modou/articles/1458911.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值