<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    J2EE社區

    茍有恒,何必三更起五更眠;
    最無益,只怕一日曝十日寒.
    posts - 241, comments - 318, trackbacks - 0, articles - 16

    整合Struts2+JasperReport Web報表應用示例2

    Posted on 2008-09-13 15:18 xcp 閱讀(5253) 評論(14)  編輯  收藏 所屬分類: struts2

    整合Struts2+JasperReport Web報表應用示例

    JasperReports作為一種優秀且開源的報表引擎,不利用太可惜了。同時,借助開源的JasperReports模板設計利器iReports,可以可視化的設計報表模板。基于Web的報表在很多項目中都是需要的。而隨著Struts2的流行,就應該研究一下在Struts2下如何利用JasperReports進行報表輸出。本示例比較簡單,采用的數據源即為JavaBean,而沒有采用復雜的數據庫,其實原理是一樣的。只是傳遞給JasperReports的參數隨著連接方式的變化而略加修改而已。

    準備工作

    所使用的類庫及Jar包如下圖所示:


    1.使用的Jar

    開發環境:MyEclipse6.0+Eclipse3.3+JDK6.0+Tomcat6.0+Struts 2.0.11。當然,本該所提供的源代碼下載中沒有提供相關的lib,因為文件大太,如果需要,請留下email。.
        另外下載Jasperreport以及可視化模板iReport的網子http://jasperforge.org/

    設計報表模板

    本例中采用JavaBean作為數據源,用于顯示People對象的一些基本屬性,如所在序號、城市、姓名、地址,并對同一城市的人員進行匯總小結顯示。

    至于如何在iReports中設計模板文件,請在網上參考其它文檔。這里不再詳細解讀,或有時間俺再另寫文章來具體講解如何在iReports中設計報表模板。WebRoot"jasper"jasper_template.jrxml代碼如下:

    <?xml version="1.0" encoding="UTF-8"  ?>
    <!-- Created with iReport - A designer for JasperReports -->
    <!DOCTYPE jasperReport PUBLIC "http://JasperReports//DTD Report Design//EN" "http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">
    <jasperReport
             
    name="jasper_template"
             columnCount
    ="1"
             printOrder
    ="Vertical"
             orientation
    ="Portrait"
             pageWidth
    ="595"
             pageHeight
    ="842"
             columnWidth
    ="535"
             columnSpacing
    ="0"
             leftMargin
    ="30"
             rightMargin
    ="30"
             topMargin
    ="20"
             bottomMargin
    ="20"
             whenNoDataType
    ="NoPages"
             isTitleNewPage
    ="false"
             isSummaryNewPage
    ="false">
        
    <property name="ireport.scriptlethandling" value="0" />
        
    <property name="ireport.encoding" value="UTF-8" />
        
    <import value="java.util.*" />
        
    <import value="net.sf.jasperreports.engine.*" />
        
    <import value="net.sf.jasperreports.engine.data.*" />

        
    <parameter name="rptMan" isForPrompting="false" class="java.lang.String">
            
    <defaultValueExpression ><![CDATA["sterning"]]></defaultValueExpression>
        
    </parameter>
        
    <parameter name="rptDate" isForPrompting="false" class="java.lang.String">
            
    <defaultValueExpression ><![CDATA["2008-01-12"]]></defaultValueExpression>
        
    </parameter>

        
    <field name="city" class="java.lang.String">
            
    <fieldDescription><![CDATA[city]]></fieldDescription>
        
    </field>
        
    <field name="street" class="java.lang.String">
            
    <fieldDescription><![CDATA[street]]></fieldDescription>
        
    </field>
        
    <field name="id" class="java.lang.Integer">
            
    <fieldDescription><![CDATA[id]]></fieldDescription>
        
    </field>
        
    <field name="name" class="java.lang.String">
            
    <fieldDescription><![CDATA[name]]></fieldDescription>
        
    </field>

        
    <variable name="CityNumber" class="java.lang.Integer" resetType="Group" resetGroup="CityGroup" calculation="Sum">
            
    <initialValueExpression><![CDATA[($V{CityNumber} != null)?(new Integer($V{CityNumber}.intValue() + 1)):(new Integer(1))]]></initialValueExpression>
        
    </variable>
        
    <variable name="AllCity" class="java.lang.Integer" resetType="Report" calculation="Sum">
            
    <initialValueExpression><![CDATA[($V{AllCity} != null)?(new Integer($V{AllCity}.intValue() + 1)):(new Integer(1))]]></initialValueExpression>
        
    </variable>

            
    <group  name="CityGroup" >
                
    <groupExpression><![CDATA[$F{city}]]></groupExpression>
                
    <groupHeader>
                
    <band height="0"  isSplitAllowed="true" >
                
    </band>
                
    </groupHeader>
                
    <groupFooter>
                
    <band height="37"  isSplitAllowed="true" >
                    
    <staticText>
                        
    <reportElement
                            
    x="98"
                            y
    ="5"
                            width
    ="51"
                            height
    ="25"
                            key
    ="staticText-8"/>
                        
    <box topBorder="None" topBorderColor="#000000" leftBorder="None" leftBorderColor="#000000" rightBorder="None" rightBorderColor="#000000" bottomBorder="None" bottomBorderColor="#000000"/>
                        
    <textElement>
                            
    <font fontName="瀹嬩綋" pdfFontName="STSong-Light" size="14" isPdfEmbedded ="true" pdfEncoding ="UniGB-UCS2-H"/>
                        
    </textElement>
                    
    <text><![CDATA[灝忚錛歖]></text>
                    </staticText>
                    <textField isStretchWithOverflow="false" isBlankWhenNull="false" evaluationTime="Now" hyperlinkType="None"  hyperlinkTarget="Self" >
                        <reportElement
                            x="149"
                            y="5"
                            width="34"
                            height="25"
                            key="textField-7"/>
                        <box topBorder="None" topBorderColor="#000000" leftBorder="None" leftBorderColor="#000000" rightBorder="None" rightBorderColor="#000000" bottomBorder="None" bottomBorderColor="#000000"/>
                        <textElement>
                            <font fontName="瀹嬩綋" pdfFontName="STSong-Light" size="14" isPdfEmbedded ="true" pdfEncoding ="UniGB-UCS2-H"/>
                        </textElement>
                    <textFieldExpression   class="java.lang.Integer"><![CDATA[$V{CityGroup_COUNT}
    ]]></textFieldExpression>
                    
    </textField>
                    
    <line direction="TopDown">
                        
    <reportElement
                            
    x="-30"
                            y
    ="36"
                            width
    ="593"
                            height
    ="0"
                            key
    ="line-5"/>
                        
    <graphicElement stretchType="NoStretch"/>
                    
    </line>
                
    </band>
                
    </groupFooter>
            
    </group>
            
    <background>
                
    <band height="0"  isSplitAllowed="true" >
                
    </band>
            
    </background>
            
    <title>
                
    <band height="62"  isSplitAllowed="true" >
                    
    <staticText>
                        
    <reportElement
                            
    x="20"
                            y
    ="0"
                            width
    ="484"
                            height
    ="57"
                            forecolor
    ="#FF0033"
                            key
    ="staticText-1"/>
                        
    <box topBorder="None" topBorderColor="#000000" leftBorder="None" leftBorderColor="#000000" rightBorder="None" rightBorderColor="#000000" bottomBorder="None" bottomBorderColor="#000000"/>
                        
    <textElement textAlignment="Center">
                            
    <font fontName="瀹嬩綋" pdfFontName="STSong-Light" size="36" isPdfEmbedded ="true" pdfEncoding ="UniGB-UCS2-H"/>
                        
    </textElement>
                    
    <text><![CDATA[Struts2+JasperReports紺轟緥]]></text>
                    
    </staticText>
                    
    <line direction="TopDown">
                        
    <reportElement
                            
    x="-30"
                            y
    ="61"
                            width
    ="594"
                            height
    ="0"
                            key
    ="line-4"/>
                        
    <graphicElement stretchType="NoStretch"/>
                    
    </line>
                
    </band>
            
    </title>
            
    <pageHeader>
                
    <band height="13"  isSplitAllowed="true" >
                    
    <line direction="TopDown">
                        
    <reportElement
                            
    x="-29"
                            y
    ="12"
                            width
    ="592"
                            height
    ="0"
                            key
    ="line-3"/>
                        
    <graphicElement stretchType="NoStretch"/>
                    
    </line>
                
    </band>
            
    </pageHeader>
            
    <columnHeader>
                
    <band height="45"  isSplitAllowed="true" >
                    
    <staticText>
                        
    <reportElement
                            
    x="13"
                            y
    ="5"
                            width
    ="62"
                            height
    ="33"
                            key
    ="staticText-2"/>
                        
    <box topBorder="None" topBorderColor="#000000" leftBorder="None" leftBorderColor="#000000" rightBorder="None" rightBorderColor="#000000" bottomBorder="None" bottomBorderColor="#000000"/>
                        
    <textElement>
                            
    <font fontName="瀹嬩綋" pdfFontName="STSong-Light" size="24" isPdfEmbedded ="true" pdfEncoding ="UniGB-UCS2-H"/>
                        
    </textElement>
                    
    <text><![CDATA[搴忓彿]]></text>
                    
    </staticText>
                    
    <staticText>
                        
    <reportElement
                            
    x="98"
                            y
    ="5"
                            width
    ="62"
                            height
    ="33"
                            key
    ="staticText-3"/>
                        
    <box topBorder="None" topBorderColor="#000000" leftBorder="None" leftBorderColor="#000000" rightBorder="None" rightBorderColor="#000000" bottomBorder="None" bottomBorderColor="#000000"/>
                        
    <textElement>
                            
    <font fontName="瀹嬩綋" pdfFontName="STSong-Light" size="24" isPdfEmbedded ="true" pdfEncoding ="UniGB-UCS2-H"/>
                        
    </textElement>
                    
    <text><![CDATA[鍩庡競]]></text>
                    
    </staticText>
                    
    <staticText>
                        
    <reportElement
                            
    x="212"
                            y
    ="5"
                            width
    ="62"
                            height
    ="33"
                            key
    ="staticText-4"/>
                        
    <box topBorder="None" topBorderColor="#000000" leftBorder="None" leftBorderColor="#000000" rightBorder="None" rightBorderColor="#000000" bottomBorder="None" bottomBorderColor="#000000"/>
                        
    <textElement>
                            
    <font fontName="瀹嬩綋" pdfFontName="STSong-Light" size="24" isPdfEmbedded ="true" pdfEncoding ="UniGB-UCS2-H"/>
                        
    </textElement>
                    
    <text><![CDATA[濮撳悕]]></text>
                    
    </staticText>
                    
    <staticText>
                        
    <reportElement
                            
    x="331"
                            y
    ="5"
                            width
    ="62"
                            height
    ="33"
                            key
    ="staticText-5"/>
                        
    <box topBorder="None" topBorderColor="#000000" leftBorder="None" leftBorderColor="#000000" rightBorder="None" rightBorderColor="#000000" bottomBorder="None" bottomBorderColor="#000000"/>
                        
    <textElement>
                            
    <font fontName="瀹嬩綋" pdfFontName="STSong-Light" size="24" isPdfEmbedded ="true" pdfEncoding ="UniGB-UCS2-H"/>
                        
    </textElement>
                    
    <text><![CDATA[浣忓潃]]></text>
                    
    </staticText>
                    
    <line direction="TopDown">
                        
    <reportElement
                            
    x="-30"
                            y
    ="43"
                            width
    ="596"
                            height
    ="0"
                            key
    ="line-2"/>
                        
    <graphicElement stretchType="NoStretch"/>
                    
    </line>
                
    </band>
            
    </columnHeader>
            
    <detail>
                
    <band height="43"  isSplitAllowed="true" >
                    
    <textField isStretchWithOverflow="false" isBlankWhenNull="false" evaluationTime="Now" hyperlinkType="None"  hyperlinkTarget="Self" >
                        
    <reportElement
                            
    x="13"
                            y
    ="7"
                            width
    ="62"
                            height
    ="30"
                            key
    ="textField-1"/>
                        
    <box topBorder="None" topBorderColor="#000000" leftBorder="None" leftBorderColor="#000000" rightBorder="None" rightBorderColor="#000000" bottomBorder="None" bottomBorderColor="#000000"/>
                        
    <textElement>
                            
    <font fontName="瀹嬩綋" pdfFontName="STSong-Light" size="14" isPdfEmbedded ="true" pdfEncoding ="UniGB-UCS2-H"/>
                        
    </textElement>
                    
    <textFieldExpression   class="java.lang.Integer"><![CDATA[$F{id}]]></textFieldExpression>
                    
    </textField>
                    
    <textField isStretchWithOverflow="false" isBlankWhenNull="false" evaluationTime="Now" hyperlinkType="None"  hyperlinkTarget="Self" >
                        
    <reportElement
                            
    x="98"
                            y
    ="7"
                            width
    ="105"
                            height
    ="29"
                            key
    ="textField-2"/>
                        
    <box topBorder="None" topBorderColor="#000000" leftBorder="None" leftBorderColor="#000000" rightBorder="None" rightBorderColor="#000000" bottomBorder="None" bottomBorderColor="#000000"/>
                        
    <textElement>
                            
    <font fontName="瀹嬩綋" pdfFontName="STSong-Light" size="14" isPdfEmbedded ="true" pdfEncoding ="UniGB-UCS2-H"/>
                        
    </textElement>
                    
    <textFieldExpression   class="java.lang.String"><![CDATA[$F{city}]]></textFieldExpression>
                    
    </textField>
                    
    <textField isStretchWithOverflow="false" isBlankWhenNull="false" evaluationTime="Now" hyperlinkType="None"  hyperlinkTarget="Self" >
                        
    <reportElement
                            
    x="212"
                            y
    ="8"
                            width
    ="100"
                            height
    ="28"
                            key
    ="textField-3"/>
                        
    <box topBorder="None" topBorderColor="#000000" leftBorder="None" leftBorderColor="#000000" rightBorder="None" rightBorderColor="#000000" bottomBorder="None" bottomBorderColor="#000000"/>
                        
    <textElement>
                            
    <font fontName="瀹嬩綋" pdfFontName="STSong-Light" size="14" isPdfEmbedded ="true" pdfEncoding ="UniGB-UCS2-H"/>
                        
    </textElement>
                    
    <textFieldExpression   class="java.lang.String"><![CDATA[$F{name}]]></textFieldExpression>
                    
    </textField>
                    
    <textField isStretchWithOverflow="false" isBlankWhenNull="false" evaluationTime="Now" hyperlinkType="None"  hyperlinkTarget="Self" >
                        
    <reportElement
                            
    x="331"
                            y
    ="7"
                            width
    ="111"
                            height
    ="30"
                            key
    ="textField-4"/>
                        
    <box topBorder="None" topBorderColor="#000000" leftBorder="None" leftBorderColor="#000000" rightBorder="None" rightBorderColor="#000000" bottomBorder="None" bottomBorderColor="#000000"/>
                        
    <textElement>
                            
    <font fontName="瀹嬩綋" pdfFontName="STSong-Light" size="14" isPdfEmbedded ="true" pdfEncoding ="UniGB-UCS2-H"/>
                        
    </textElement>
                    
    <textFieldExpression   class="java.lang.String"><![CDATA[$F{street}]]></textFieldExpression>
                    
    </textField>
                    
    <line direction="TopDown">
                        
    <reportElement
                            
    x="-30"
                            y
    ="37"
                            width
    ="593"
                            height
    ="0"
                            key
    ="line-1"/>
                        
    <graphicElement stretchType="NoStretch"/>
                    
    </line>
                
    </band>
            
    </detail>
            
    <columnFooter>
                
    <band height="37"  isSplitAllowed="true" >
                
    </band>
            
    </columnFooter>
            
    <pageFooter>
                
    <band height="50"  isSplitAllowed="true" >
                    
    <textField isStretchWithOverflow="false" isBlankWhenNull="false" evaluationTime="Now" hyperlinkType="None"  hyperlinkTarget="Self" >
                        
    <reportElement
                            
    x="98"
                            y
    ="18"
                            width
    ="138"
                            height
    ="23"
                            key
    ="textField-8"/>
                        
    <box topBorder="None" topBorderColor="#000000" leftBorder="None" leftBorderColor="#000000" rightBorder="None" rightBorderColor="#000000" bottomBorder="None" bottomBorderColor="#000000"/>
                        
    <textElement textAlignment="Right">
                            
    <font fontName="瀹嬩綋" pdfFontName="STSong-Light" size="12" isPdfEmbedded ="true" pdfEncoding ="UniGB-UCS2-H"/>
                        
    </textElement>
                    
    <textFieldExpression   class="java.lang.String"><![CDATA["欏墊暟 " + String.valueOf($V{PAGE_NUMBER}) + " of"]]></textFieldExpression>
                    
    </textField>
                    
    <textField isStretchWithOverflow="false" isBlankWhenNull="false" evaluationTime="Report" hyperlinkType="None"  hyperlinkTarget="Self" >
                        
    <reportElement
                            
    x="239"
                            y
    ="18"
                            width
    ="83"
                            height
    ="23"
                            key
    ="textField-9"/>
                        
    <box topBorder="None" topBorderColor="#000000" leftBorder="None" leftBorderColor="#000000" rightBorder="None" rightBorderColor="#000000" bottomBorder="None" bottomBorderColor="#000000"/>
                        
    <textElement>
                            
    <font fontName="瀹嬩綋" pdfFontName="STSong-Light" size="12" isPdfEmbedded ="true" pdfEncoding ="UniGB-UCS2-H"/>
                        
    </textElement>
                    
    <textFieldExpression   class="java.lang.String"><![CDATA[" " + String.valueOf($V{PAGE_NUMBER})]]></textFieldExpression>
                    
    </textField>
                
    </band>
            
    </pageFooter>
            
    <lastPageFooter>
                
    <band height="50"  isSplitAllowed="true" >
                
    </band>
            
    </lastPageFooter>
            
    <summary>
                
    <band height="0"  isSplitAllowed="true" >
                
    </band>
            
    </summary>
    </jasperReport>
     

    這里需要說明的是,由于俺們中國的中文比較特殊,由此在PDF中顯示的時候,需要一些額外的Jar包字體來支持。因此需要下載iTextAsian.jar包,此包專門用于顯示亞洲的字符。只不過iReport3.0.0以后就已經含了些包

    設計JavaBean

    由本例中沒有使用數據庫,而是使用JavaBean作為JRDataSource,來傳遞給JasperReports作為數據源,因此只需要設計JavaBean"src"com"sterning"PeopleBean.java的代碼很簡單,只在字個字段:cityidnamestreet,代碼如下所示:

    package com.sterning;

    public class PeopleBean
    {
        
    private String city = null;
        
    private Integer id = null;
        
    private String name = null;
        
    private String street = null;

        
    public PeopleBean(
            String pcity,
            Integer pid,
            String pname,
            String pstreet
            )
        
    {
            city 
    = pcity;
            id 
    = pid;
            name 
    = pname;
            street 
    = pstreet;
        }


        
    public PeopleBean getMe()
        
    {
            
    return this;
        }


        
    public String getCity()
        
    {
            
    return city;
        }


        
    public Integer getId()
        
    {
            
    return id;
        }


        
    public String getName()
        
    {
            
    return name;
        }


        
    public String getStreet()
        
    {
            
    return street;
        }

    }


     

    編譯模板

    其實表面上說是填充數據,其實就是填充一個List。具體的工具都是交給我們的JasperReports去完成。JasperReports要完成數據的填充工作,要經歷將編譯(將模板文件.jrxml編譯成.jasper文件)、加載(加載.jasper文件)、填充(從數據源中取得數據并填充到.jasper二進制文件中)三大步驟。src"com"sterning"JasperAction.java,其代碼如下所示:

    package com.sterning;

    import java.io.File;
    import java.util.ArrayList;
    import java.util.List;

    import net.sf.jasperreports.engine.JasperCompileManager;

    import org.apache.struts2.ServletActionContext;

    import com.opensymphony.xwork2.ActionSupport;

    public class JasperAction extends ActionSupport {
        
    private static final long serialVersionUID = 1L;

        
    private List<PeopleBean> myList;

        
    public String execute() throws Exception {
            
    //添加數據
            PeopleBean p1=new PeopleBean("長沙"new Integer(9), "李化""天灑路");
            PeopleBean p2
    =new PeopleBean("長沙"new Integer(22), "王小樣""呆小路564");
            PeopleBean p3
    =new PeopleBean("南昌"new Integer(23), "王奸可""小順路");
            PeopleBean p4
    =new PeopleBean("南昌"new Integer(32), "李灑""順濉路");
            PeopleBean p5
    =new PeopleBean("武漢"new Integer(39), "張中尖""天灑路");
            PeopleBean p6
    =new PeopleBean("武漢"new Integer(35), "陳主寧""天河路564");
            myList 
    = new ArrayList<PeopleBean>();
            myList.add(p1);
            myList.add(p2);
            myList.add(p3);
            myList.add(p4);
            myList.add(p5);
            myList.add(p6);

            
    try {
                String reportSource;
                reportSource 
    = ServletActionContext.getServletContext()
                        .getRealPath(
    "/jasper/jasper_template.jrxml");
                File parent 
    = new File(reportSource).getParentFile();
                
    //將.jrxml模板文件編譯成為.jasper文件,當然,其文件名可以指定,如果沒指定,則與.jrxml文件名一樣.只是后綴不同而已
                JasperCompileManager.compileReportToFile(reportSource, new File(
                        parent, 
    "compiled_jasper_template.jasper")
                        .getAbsolutePath());
            }
     catch (Exception e) {
                e.printStackTrace();
                
    return ERROR;
            }

            
    return SUCCESS;
        }


        
    public List getMyList() {
            
    return myList;
        }

    }


     

    配置Struts2文件

    前面這些工作都是為JasperReports而作的。接下來就是將JasperReports集成到Struts2中。

    1. Web.xml

    首先是Web.xml。這個文件配置比較簡單,也比較常規,沒什么好說,代碼如下WebRoot"WEB-INF"web.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
        xmlns:xsi
    ="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation
    ="http://java.sun.com/xml/ns/j2ee 
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    >
        
    <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>
        
    <filter-mapping>
            
    <filter-name>struts2</filter-name>
            
    <url-pattern>/*</url-pattern>
        
    </filter-mapping>

        
    <!-- The Welcome File List -->
        
    <welcome-file-list>
            
    <welcome-file>index.jsp</welcome-file>
        
    </welcome-file-list>
    </web-app>

     

    2. struts.xml

    按理說struts.xml配置文件應該更加簡單,但這里由于集成了JasperReports,所以看上去要復雜一點。先來看代碼:src" struts.xml

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
        "http://struts.apache.org/dtds/struts-2.0.dtd"
    >
    <struts>
        
    <package name="default"
            extends
    ="struts-default,jasperreports-default">
            
    <action name="PDF" class="com.sterning.JasperAction">
                
    <result name="success" type="jasper">
                    
    <param name="location">
                        /jasper/compiled_jasper_template.jasper
                    
    </param>
                    
    <param name="dataSource">myList</param>
                    
    <param name="format">PDF</param>
                
    </result>
            
    </action>
            
    <action name="HTML" class="com.sterning.JasperAction">
                
    <result name="success" type="jasper">
                    
    <param name="location">
                        /jasper/compiled_jasper_template.jasper
                    
    </param>
                    
    <param name="dataSource">myList</param>
                    
    <param name="format">HTML</param>
                
    </result>
            
    </action>
            
    <action name="XML" class="com.sterning.JasperAction">
                
    <result name="success" type="jasper">
                    
    <param name="location">
                        /jasper/compiled_jasper_template.jasper
                    
    </param>
                    
    <param name="dataSource">myList</param>
                    
    <param name="format">XML</param>
                
    </result>
            
    </action>
            
    <action name="CSV" class="com.sterning.JasperAction">
                
    <result name="success" type="jasper">
                    
    <param name="location">
                        /jasper/compiled_jasper_template.jasper
                    
    </param>
                    
    <param name="dataSource">myList</param>
                    
    <param name="format">CSV</param>
                
    </result>
            
    </action>
            
    <action name="XLS" class="com.sterning.JasperAction">
                
    <result name="success" type="jasper">
                    
    <param name="location">
                        /jasper/compiled_jasper_template.jasper
                    
    </param>
                    
    <param name="dataSource">myList</param>
                    
    <param name="format">XLS</param>
                
    </result>
            
    </action>
        
    </package>
    </struts>
     

    這里,當調用JasperActionexecute()方法成功后,返回后,可見有三個參數:location告訴JasperReports數據填充類二進制的.jasper文件的位置,dataSource指明使用什么數據源,format指明報表輸出的格式。


     

    頁面文件

    Index.jsp的代碼非常的簡單,如下:

    <%@ page language="java" pageEncoding="GB2312"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
        
    <head>
            
    <title>Struts2+ JasperReports 使用示例</title>
        
    </head>
        
    <body>
            
    <href="HTML.action">HTML</a>
            
    <br>
            
    <href="PDF.action">PDF</a>
            
    <br>
            
    <href="XML.action">XML</a>
            
    <br>
            
    <href="CSV.action">CSV</a>
            
    <br>
            
    <href="XLS.action">XLS</a>
        
    </body>
    </html>

     

    運行效果

    1HTML格式

    2.HTML格式

    2PDF格式


    3.PDF格式

    3XML格式


    4.XML格式

    4Excel格式


    5.Excel格式

    轉載于:http://www.tkk7.com/sterning/archive/2008/01/02/172317.html




    有兩個比較好的實例:
    http://www.sunchis.com/html/java/javareport/2010/0313/67_2.html
    http://sarin.javaeye.com/blog/658145



    名稱: ?4C.ESL | .↗Evon
    口號: 遇到新問題?先要尋找一個方案乄而不是創造一個方案こ
    mail: 聯系我


    Feedback

    # re: 整合Struts2+JasperReport Web報表應用示例2  回復  更多評論   

    2008-11-03 13:59 by shumeng
    我想要那個lib的包
    幫忙發一下
    mail: shumeng.happy@163.com

    # re: 整合Struts2+JasperReport Web報表應用示例2  回復  更多評論   

    2008-11-14 11:41 by deco2472
    我想要那個lib的包

    謝了!幫我發下

    mail:xiaosan2472@163.com

    # re: 整合Struts2+JasperReport Web報表應用示例2  回復  更多評論   

    2008-11-14 15:11 by 唐林峰
    感覺這個東西太難了,
    我想要那個lib的包

    謝了!幫我發下
    Email: tanglinfeng1984@126.com

    # re: 整合Struts2+JasperReport Web報表應用示例2  回復  更多評論   

    2008-11-24 10:35 by 杜旭慶
    dxq831128@hotmail.com

    # re: 整合Struts2+JasperReport Web報表應用示例2  回復  更多評論   

    2008-11-24 10:36 by 杜旭慶
    樓主謝謝!幫我也發一份jar包啊!

    # re: 整合Struts2+JasperReport Web報表應用示例2[未登錄]  回復  更多評論   

    2009-01-29 19:08 by hua
    我想要那個lib的包 與實例
    幫忙發一下

    我的email:greenruby2008@163.com
    謝謝!

    # re: 整合Struts2+JasperReport Web報表應用示例2  回復  更多評論   

    2009-09-01 09:11 by 陳書華
    我也要那個包
    幫忙發一下
    email hncsgycsh@163.com

    # re: 整合Struts2+JasperReport Web報表應用示例2  回復  更多評論   

    2009-09-10 13:57 by blameswood
    麻煩給我發份,謝謝!
    EMAIL:blameswood@hotmail.com

    # re: 整合Struts2+JasperReport Web報表應用示例2  回復  更多評論   

    2009-10-10 22:16 by www
    麻煩給我發份,謝謝!
    EMAIL:wangsenyo@qq.com

    # re: 整合Struts2+JasperReport Web報表應用示例2  回復  更多評論   

    2009-10-29 23:01 by dddd
    麻煩也給我發份包呀,找了好久都沒找齊,email:longlong850525@gmail.com

    # re: 整合Struts2+JasperReport Web報表應用示例2[未登錄]  回復  更多評論   

    2010-01-05 15:57 by owen
    zhanhauzhong@126.com
    給我lib下的包啊

    # re: 整合Struts2+JasperReport Web報表應用示例2[未登錄]  回復  更多評論   

    2010-01-05 15:57 by owen
    zhanhuazhong@126.com
    發錯了

    # re: 整合Struts2+JasperReport Web報表應用示例2  回復  更多評論   

    2012-03-02 16:43 by pcl
    我要lib包 631360479@qq.com

    # re: 整合Struts2+JasperReport Web報表應用示例2  回復  更多評論   

    2012-06-06 11:37 by xys
    623806626@qq.com 謝謝!
    主站蜘蛛池模板: 国产成人亚洲综合一区| 免费a级毛片无码a∨蜜芽试看 | 好男人看视频免费2019中文| 免费人成在线观看视频高潮 | 亚洲精品亚洲人成在线麻豆| 亚洲国产香蕉人人爽成AV片久久 | 亚洲AV成人片无码网站| 亚洲精品无码久久毛片波多野吉衣| 亚洲一区二区三区免费| 四虎在线视频免费观看| 免费福利在线播放| 无码精品国产一区二区三区免费 | 国产亚洲一区二区三区在线不卡| 四虎免费在线观看| 大学生一级毛片免费看| 亚洲精品免费观看| 国偷自产一区二区免费视频| 一区二区视频免费观看| 精品国产亚洲一区二区三区在线观看| 亚洲无成人网77777| 亚洲天堂视频在线观看| 国产AV无码专区亚洲AV毛网站 | 午夜高清免费在线观看| 中文字幕av无码无卡免费| 99re6在线精品视频免费播放 | 久久免费观看视频| 成人国产网站v片免费观看| 国产偷国产偷亚洲高清在线| 亚洲日本VA中文字幕久久道具| 亚洲人成网站在线观看播放青青| 图图资源网亚洲综合网站| 久久精品国产亚洲av成人| 亚洲处破女AV日韩精品| 国产精品久久久亚洲| 日本亚洲成高清一区二区三区| 在线亚洲97se亚洲综合在线| 久久久青草青青国产亚洲免观| 国产偷国产偷亚洲高清日韩| 中文字幕日韩亚洲| 亚洲人成无码网站| 亚洲AV无码不卡在线播放|