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

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

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

    java技術(shù)研究

    統(tǒng)計(jì)

    留言簿(3)

    閱讀排行榜

    評(píng)論排行榜

    Struts2 + JasperReport應(yīng)用一:導(dǎo)PDF,Excel,HTML顯示(轉(zhuǎn))

    轉(zhuǎn)自:http://zmx.iteye.com/blog/583482
    Struts2 + JasperReport應(yīng)用一:導(dǎo)PDF,Excel,HTML顯示

    HTMLExcelStrutsServletXML 

    我用的是struts2.1.6,從struts2的自帶的demo當(dāng)中可以看到它的web.xml配置與之前的有點(diǎn)不同,有另外一種配置:

    Xml代碼  收藏代碼
    1. <filter>  
    2.         <filter-name>Struts2</filter-name>  
    3.         <filter-class>  
    4.             org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter  
    5.         </filter-class>  
    6.     </filter>  
    7.     <filter-mapping>  
    8.         <filter-name>Struts2</filter-name>  
    9.         <url-pattern>/*</url-pattern>  
    10.     </filter-mapping>  

     

    這樣的配置可以在web.xml配置我們的serlvet,如果寫(xiě)成以前的寫(xiě)法你配置上serlvet會(huì)報(bào)錯(cuò)。

     

    將我們?cè)O(shè)置的報(bào)表文件和編譯文件放到WebRoot下面的jasper下面,添加struts2對(duì)jasperReport的插件。

    構(gòu)造我們的JavaBean如下(get,set方法省略了):

    Java代碼  收藏代碼
    1. public class Person {  
    2.     private String person_Id;  
    3.   
    4.     private String person_name;  
    5.   
    6.     private String person_age;  
    7.   
    8.     private String person_address;  
    9. }  

     構(gòu)造我們的service:

    Java代碼  收藏代碼
    1. public class PersonService {  
    2.     public List<Person> getAllPerson() {  
    3.         List<Person> perList = new ArrayList<Person>();  
    4.         perList.add(new Person("101", "小博", "22", "湖北"));  
    5.         perList.add(new Person("102", "張三", "21", "湖南"));  
    6.         perList.add(new Person("103", "李四", "23", "江蘇"));  
    7.         perList.add(new Person("104", "王五", "22", "上海"));  
    8.         return perList;  
    9.     }  
    10. }  

     構(gòu)造action:

    Java代碼  收藏代碼
    1. public class PersonAction extends ActionSupport {  
    2.   
    3.     private List<Person> presonList = null;  
    4.   
    5.     private Map<String, String> reportParameter = null;  
    6.   
    7.     @Override  
    8.     public String execute() throws Exception {  
    9.         presonList = new PersonService().getAllPerson();  
    10.         reportParameter = new HashMap<String, String>();  
    11.         reportParameter.put("year", "2009");  
    12.         reportParameter.put("unit_mc", "武漢XX科技有限公司");  
    13.         return SUCCESS;  
    14.     }  
    15.       
    16.     public String htmlView(){  
    17.         return SUCCESS;  
    18.     }  
    19.       
    20.     public List<Person> getPresonList() {  
    21.         return presonList;  
    22.     }  
    23.   
    24.     public void setPresonList(List<Person> presonList) {  
    25.         this.presonList = presonList;  
    26.     }  
    27.   
    28.     public Map<String, String> getReportParameter() {  
    29.         return reportParameter;  
    30.     }  
    31.   
    32.     public void setReportParameter(Map<String, String> reportParameter) {  
    33.         this.reportParameter = reportParameter;  
    34.     }  
    35. }  

     struts配置如下:

    Xml代碼  收藏代碼
    1. <!DOCTYPE struts PUBLIC  
    2.         "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"  
    3.         "http://struts.apache.org/dtds/struts-2.0.dtd">  
    4. <struts>  
    5.     <constant name="struts.action.extension" value="action" />  
    6.   
    7.     <package name="jasperReport"  
    8.         extends="struts-default,jasperreports-default">  
    9.         <action name="PDF" class="com.mengya.action.PersonAction">  
    10.             <result name="success" type="jasper">  
    11.                 <param name="location">/jasper/preson.jasper</param>  
    12.                 <param name="dataSource">presonList</param>  
    13.                 <param name="reportParameters">reportParameter</param>  
    14.                 <param name="format">PDF</param>  
    15.             </result>  
    16.         </action>  
    17.   
    18.         <action name="XLS" class="com.mengya.action.PersonAction">  
    19.             <result name="success" type="jasper">  
    20.                 <param name="location">/jasper/preson.jasper</param>  
    21.                 <param name="dataSource">presonList</param>  
    22.                 <param name="reportParameters">reportParameter</param>  
    23.                 <param name="format">XLS</param>  
    24.             </result>  
    25.         </action>  
    26.         <action name="XML" class="com.mengya.action.PersonAction">  
    27.             <result name="success" type="jasper">  
    28.                 <param name="location">/jasper/preson.jasper</param>  
    29.                 <param name="dataSource">presonList</param>  
    30.                 <param name="reportParameters">reportParameter</param>  
    31.                 <param name="format">XML</param>  
    32.             </result>  
    33.         </action>  
    34.         <action name="CSV" class="com.mengya.action.PersonAction">  
    35.             <result name="success" type="jasper">  
    36.                 <param name="location">/jasper/preson.jasper</param>  
    37.                 <param name="dataSource">presonList</param>  
    38.                 <param name="reportParameters">reportParameter</param>  
    39.                 <param name="format">CSV</param>  
    40.             </result>  
    41.         </action>  
    42.         <!--   
    43.             location:是指我們剛才用iReport編譯生成的jasper文件  
    44.             dataSource:是指我們執(zhí)行的數(shù)據(jù)庫(kù)查詢結(jié)果,在testAction類里把這個(gè)結(jié)果查詢出來(lái),這個(gè)參數(shù)必須要有  
    45.             format:是指需要輸出的類型,默認(rèn)是PDF,其他的輸出類型有:XML、HTML、XLS、CSV、RTF ,注意這里一定要大寫(xiě)  
    46.             reportParameters:jasperreport中的Parameters  
    47.             除了這幾個(gè)參數(shù),還有下列參數(shù):  
    48.             delimiter:是指如果輸出類型為CSV的話,指定分割符,默認(rèn)為“,”  
    49.             parse:是指是否解析location參數(shù)中的EL表達(dá)式,默認(rèn)為 true  
    50.             contentDisposition:指定disposition,默認(rèn)為“inline”,如果設(shè)為“attachment”就是強(qiáng)制下載  
    51.             documentName:輸出的文件名  
    52.             imageServletUrl:生成圖形的路徑  
    53.         -->  
    54.     </package>  
    55. </struts>  

     頁(yè)面調(diào)用:

    Html代碼  收藏代碼
    1. <a href="PDF.action">PDF</a>  
    2.        <a href="XLS.action">XLS</a>  
    3.        <a href="XML.action">XML</a>  
    4.        <a href="CSV.action">CSV</a>  

     如果要想以HTML形式顯示報(bào)表內(nèi)容則還需要在web.xml配置jasperReport自帶的一個(gè)servlet如下:

    Xml代碼  收藏代碼
    1. <!-- JasperReport包中自帶的Servlet,用來(lái)做為HTML形式顯示報(bào)表的時(shí)候報(bào)表的圖片,要在這里配置上,圖片在jasperReport包中 -->  
    2.     <servlet>  
    3.         <servlet-name>JasperReportImageServlet</servlet-name>  
    4.         <servlet-class>  
    5.             net.sf.jasperreports.j2ee.servlets.ImageServlet  
    6.         </servlet-class>  
    7.     </servlet>  
    8.   
    9.     <servlet-mapping>  
    10.         <servlet-name>JasperReportImageServlet</servlet-name>  
    11.         <url-pattern>/image</url-pattern>  
    12.     </servlet-mapping>  

     

    action中不需要修改,只需在struts.xml里添加一個(gè)HTML不配置如下:

    Xml代碼  收藏代碼
    1. <action name="HTML" class="com.mengya.action.PersonAction">  
    2.             <result name="success" type="jasper">  
    3.                 <param name="location">/jasper/preson.jasper</param>  
    4.                 <param name="dataSource">presonList</param>  
    5.                 <param name="reportParameters">reportParameter</param>  
    6.                 <param name="format">HTML</param>  
    7.                 <param name="imageServletUrl">  
    8.                     <![CDATA[/image?image=]]>  
    9.                 </param>  
    10.             </result>  
    11.         </action>  

     imageServletUrl的值就是上面的serlvet的路徑,該servlet就是生成了一個(gè)圖形,如果不配置該serlvet則頁(yè)面上有圖片沒(méi)顯示的樣子。

    頁(yè)面調(diào)用如:

    Html代碼  收藏代碼
    1. <a href="HTML.action">HTML</a>  

    posted on 2013-02-21 15:21 小秦 閱讀(921) 評(píng)論(0)  編輯  收藏


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲人成电影在线播放| 国产亚洲福利精品一区| 亚洲美女又黄又爽在线观看| 久久亚洲AV无码精品色午夜麻豆| 亚洲人成无码网站在线观看 | 性xxxx黑人与亚洲| 黄页网站在线视频免费| 无码人妻精品中文字幕免费 | 毛片在线看免费版| 伊伊人成亚洲综合人网7777| 亚洲色欲色欲www| 黄视频在线观看免费| 午夜宅男在线永久免费观看网| 久久精品国产亚洲Aⅴ蜜臀色欲| 亚洲妓女综合网99| 一级毛片完整版免费播放一区| 国产成人精品免费午夜app| 亚洲AV网站在线观看| 亚洲成人黄色在线| 国产免费黄色无码视频| 成人免费一区二区无码视频| 亚洲精品国偷自产在线| 国产午夜亚洲精品不卡免下载| 中文字幕亚洲免费无线观看日本 | 999zyz**站免费毛片| 性色av免费观看| 亚洲AV无码欧洲AV无码网站| 春暖花开亚洲性无区一区二区 | 91青青青国产在观免费影视| 亚洲成人国产精品| 亚洲综合激情五月色一区| 国产精品免费看久久久| 亚洲 另类 无码 在线| 亚洲av成人综合网| 久久久久久夜精品精品免费啦| 亚洲一级片内射网站在线观看| 亚洲人AV在线无码影院观看| 13一14周岁毛片免费| 亚洲午夜福利在线观看| 美女视频免费看一区二区| 最近最新中文字幕完整版免费高清|