Webwork使用JasperReport入门实例

 

 

首先,建立bean及Action

 

package  ch7.example6;

public   class  Member {
     String firstname;
     String lastname;
     String email;
    
    
public String getEmail() {
        
return email;
    }

    
public void setEmail(String email) {
        
this.email = email;
    }

    
public String getFirstname() {
        
return firstname;
    }

    
public void setFirstname(String firstname) {
        
this.firstname = firstname;
    }

    
public String getLastname() {
        
return lastname;
    }

    
public void setLastname(String lastname) {
        
this.lastname = lastname;
    }

}
  


package  ch7.example6;

import  java.util.ArrayList;
import  java.util.List;

import  ch7.example5.Member;

import  com.opensymphony.xwork.ActionSupport;

public   class  TestJaserReport  extends  ActionSupport  {

    List members
=new ArrayList();
       
public TestJaserReport(){
           Member m1
=new Member();
           m1.setEmail(
"gaoxiang1@tom.com");
           m1.setFirstname(
"gao1");
           m1.setLastname(
"xiang1");
           
           Member m2
=new Member();
           m2.setEmail(
"gaoxiang2@tom.com");
           m2.setFirstname(
"gao2");
           m2.setLastname(
"xiang2");
           
           Member m3
=new Member();
           m3.setEmail(
"gaoxiang3@tom.com");
           m3.setFirstname(
"gao3");
           m3.setLastname(
"xiang3");
            
            members.add(m1);
            members.add(m2);
            members.add(m3);
       }


    
public String execute() throws Exception {
    
        
return SUCCESS;
    }


    
public List getMembers() {
        
return members;
    }


    
public void setMembers(List members) {
        
this.members = members;
    }


    
  
}

 

以xml形式编写jasperreport模板文件:

 

<? xml version="1.0" encoding="UTF-8" ?>
<! DOCTYPE jasperReport PUBLIC "-//JasperReports//DTD Report Design//EN"
"http://jasperreports.sourceforge.net/dtds/jasperreport.dtd"
>


< jasperReport  name ="members" >

   
< field  name ="email"  class ="java.lang.String" >
     
< fieldDescription > email </ fieldDescription >
   
</ field >
   
< field  name ="firstname"  class ="java.lang.String" >
     
< fieldDescription > firstname </ fieldDescription >
   
</ field >
   
< field  name ="lastname"  class ="java.lang.String" >
     
< fieldDescription > lastname </ fieldDescription >
   
</ field >
   
< detail >
     
< band  height ="20" >
        
< textField >
           
< reportElement  x ="0"  y ="3"  width ="100"  height ="15" />
           
< textFieldExpression > $F{email} </ textFieldExpression >
        
</ textField >
         
< textField >
           
< reportElement  x ="100"  y ="3"  width ="100"  height ="15" />
           
< textFieldExpression > $F{firstname} </ textFieldExpression >
        
</ textField >
         
< textField >
           
< reportElement  x ="200"  y ="3"  width ="100"  height ="15" />
           
< textFieldExpression > $F{lastname} </ textFieldExpression >
        
</ textField >
     
</ band >
   
</ detail >
</ jasperReport >

 

使用com.opensymphony.webwork.views.jasperreports.CompileReport;进行报表模板编译,生成japser文件,这很重要,我开始以为直接写japser文件就可以了,但一直有不能读取对象的异常,查看了jasperreport的源码,方知道,报表文件原来是需要进行编译的

 

xwork配置文件

 

< include  file ="webwork-default.xml" ></ include >
< action  name ="testjaserreport-html"  class ="ch7.example6.TestJaserReport" >
      
< result  name ="success"  type ="jasper" >
        
< param  name ="location" > /ch7/members.jasper </ param >
        
< param  name ="dataSource" > members </ param >
        
< param  name ="format" > PDF </ param >
      
</ result >
   
</ action >

其中location是jasper文件路径
dataSource是action中有getter方法的属性
format是报表格式,除了PDF,jasperreport还还支持HTML,XLS,CSV,XML格式

jasper result还有一个特殊之处,他需要一个1*1像素的图形文件,放到webroot的images目录下,取名为px(注意:没有扩展名)

运行action,可以看到浏览器已经给出PDF格式的报表了

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值