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

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

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

    隨筆-50  評論-55  文章-8  trackbacks-0

    準(zhǔn)備工作:??????
    ?? ??? 初次接觸到webwork2,花了一天左右的時間研究一番,在MyEclipse上運行起來一個j2ee報表項目的DEMO。關(guān)于怎么樣在MyEclipse上配置webwork2,本人主要參考了文章:
    http://wiki.javascud.org/display/ww2cndoc/Setting+up+Eclipse+with+Tomcat ,這真是不錯的文章。基本上只要參考該文章按部就班配置即可。
    ????? 當(dāng)然另一個重要的部分就是先設(shè)計報表模板,這里我們選擇杰表2008作為報表工具。
    ?????? 用杰表2008創(chuàng)建美洲國家資源表的參數(shù)報表,

    design.JPG
    圖1是報表模板;
    data.JPG
    圖2是報表所用到的數(shù)據(jù)源
    sql.JPG
    圖3是參數(shù)查詢的sql語句
    parameter3.JPG
    圖4是參數(shù)的設(shè)置截圖

    ?????最后??將設(shè)計好的模板保存在? d:/country.xml,下面開始webwork2與報表的集成。

    一、在webwork2中,你的控制層主要是實現(xiàn)一個action接口,然后再在xwork.xml中將action請求指向跳轉(zhuǎn)的頁面;
    比如我的xwork.xml中是這樣配置的:
    <!DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.1.1//EN" " <xwork>
    ?? <include file="webwork-default.xml"/>
    ?<package name="default" extends="webwork-default">
    ???? <!-- Include webwork defaults (from WebWork JAR). -->
    ???? <default-interceptor-ref name="completeStack"/>

    ????? <action name="reportAction"
    ???????? class="com.chinadcl.ReportAction">
    ???????? <result name="success">reportAction.jsp</result>
    ????? </action>
    ????? <action name="ajaxReport"
    ???????? class="com.chinadcl.AjaxReport">
    ???????? <!--<result name="success">jrs.jsp</result>
    ????? --></action>
    ?? </package>
    ? </xwork>

    二、再看AjaxReport.java
    注意:這里從ajax傳進來的xml文件如下:

    <report>
    <path>
    d:/country.xml</path>
    <parameter>'South America'</parameter>
    </report>

    package com.chinadcl;

    import java.io.*;
    import java.io.ByteArrayInputStream;
    import java.io.FileInputStream;
    import java.io.PrintWriter;

    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.parsers.ParserConfigurationException;
    import org.w3c.dom.Document;
    import org.w3c.dom.NodeList;
    import org.xml.sax.SAXException;

    import com.jatools.core.ReportJob;
    import com.opensymphony.webwork.ServletActionContext;
    import com.opensymphony.xwork.Action;

    public class AjaxReport implements Action {

    ?public String execute() throws Exception {
    ??// TODO Auto-generated method stub
    ??System.out.println("AjaxReport...");
    ??HttpServletResponse response = ServletActionContext.getResponse();

    ??response.setHeader("Pragma", "No-cache");
    ??response.setHeader("Cache-Control", "no-cache");
    ??response.setDateHeader("Expires", 0);
    ??response.setContentType("text/http;charset=utf-8");

    //以下是解析WEB頁面?zhèn)鬏斶M來的xml文件
    ??HttpServletRequest request = ServletActionContext.getRequest();

    ??StringBuffer xml = new StringBuffer();
    ??try {

    ???BufferedReader reader = request.getReader();
    ???String line = null;
    ???while ((line = reader.readLine()) != null) {
    ????xml.append(line);
    ???}
    ??} catch (Exception e) {
    ???System.out.println("XML讀取有誤`…" + e.toString());
    ??}
    ??String xml_data = xml.toString();
    ??Document xmlDoc = null;
    ??try {
    ???DocumentBuilder builder = DocumentBuilderFactory.newInstance()
    ?????.newDocumentBuilder();
    ???xmlDoc = builder
    ?????.parse(new ByteArrayInputStream(xml_data.getBytes()));
    ??} catch (ParserConfigurationException e) {
    ???System.out.println(e);
    ??} catch (SAXException e) {
    ???System.out.println(e);
    ??}
    ? String filePath = xmlDoc.getElementsByTagName("path").item(0)
    ????.getTextContent();
    ??String parameter = xmlDoc.getElementsByTagName("parameter").item(0)
    ????.getTextContent();
    ?//以下是根據(jù)參數(shù)
    ?//調(diào)用杰表2008生成報表,并返回給AJAX前臺
    ??PrintWriter out = response.getWriter();
    ??ReportJob job = new ReportJob(new FileInputStream(filePath));
    ??job.setParameter("$parameter3", parameter);
    ??job.setParameter(job.HTML_BODY_ONLY, "true");
    ??try {

    ???ReportFactory rf = new ReportFactory();
    ?? rf.createOutput("country", "D:/country_temp");
    ???job.printAsDHTML(rf, out);
    ??} catch (Exception e) {
    ???e.printStackTrace();
    ??}

    ??out.close();
    //注意這里是返回null,如果是返回SUCCESS,將調(diào)用xwork.xml中的jrs.jsp頁面
    //<action name="ajaxReport"
    //???????? class="com.chinadcl.AjaxReport">
    //???????? <!--<result name="success">jrs.jsp</result>
    //????? --></action>
    //? 因為在這里生產(chǎn)的報表直接返回給ajax前臺,所以在xwork.xml中不需要配置返回結(jié)果,因為根本不調(diào)用。
    ?? return null;
    ?}

    }

    三、在report.js中替換點div,顯示報表:
    var report_area = document.getElementById("jatools-report");
    var xmlDoc = xmlHttp.responseText;
    report_area.innerHTML = xmlDoc;

    四、編程工作已經(jīng)完成,下面讓我們看看效果:
    首先是初始化頁面:
    r1.JPG
    然后選擇Noorth America點擊Show Result 按鈕,通過ajax部分刷新報表顯示的div層,如下:
    r2.JPG
    再看看選擇South America的報表效果:
    r3.JPG

    至此,大功告成,以上便是在webwork2中集成杰表2008一個demo項目。
    聯(lián)系我:e-mail: jiangdh@jatools.com
    ?????????????? qq:???? 29357120
    ??????????????? msn:?
    dh.jiang@live.cn

    posted on 2008-04-25 10:27 蔣家狂潮 閱讀(373) 評論(0)  編輯  收藏 所屬分類: JWeb
    主站蜘蛛池模板: 女人18毛片免费观看| 最近免费2019中文字幕大全| 成人A级毛片免费观看AV网站| 久久久久亚洲精品成人网小说| 中文在线观看免费网站| 久久亚洲精品无码观看不卡| www.xxxx.com日本免费| 亚洲av午夜成人片精品电影| 免费毛片毛片网址| 亚洲午夜精品久久久久久浪潮| eeuss影院ss奇兵免费com| 亚洲伊人久久综合中文成人网| 中文字幕手机在线免费看电影| 亚洲国产精品成人久久| 国产自国产自愉自愉免费24区 | 永久免费不卡在线观看黄网站| 亚洲中文久久精品无码| 黄色网站软件app在线观看免费| 亚洲精品免费视频| 大学生一级毛片免费看| 亚洲精品无码久久久久YW| 四虎影永久在线高清免费| 成人午夜影视全部免费看| 亚洲精品二区国产综合野狼| 精品一区二区三区免费毛片爱| 亚洲国产成人在线视频| 岛国大片免费在线观看| 免费国产黄网站在线观看动图| 亚洲欧洲成人精品香蕉网| 1000部免费啪啪十八未年禁止观看| 亚洲国产成人va在线观看网址| 免费无码看av的网站| 国产精品无码免费专区午夜 | 亚洲一区二区三区播放在线| 免费鲁丝片一级在线观看| 一区在线免费观看| 亚洲春色另类小说| 免费看男女下面日出水视频| 老司机69精品成免费视频| 亚洲偷自精品三十六区| 亚洲中文字幕无码爆乳av中文|