<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

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

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

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

    一、在webwork2中,你的控制層主要是實現一個action接口,然后再在xwork.xml中將action請求指向跳轉的頁面;
    比如我的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頁面傳輸進來的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();
    ?//以下是根據參數
    ?//調用杰表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,將調用xwork.xml中的jrs.jsp頁面
    //<action name="ajaxReport"
    //???????? class="com.chinadcl.AjaxReport">
    //???????? <!--<result name="success">jrs.jsp</result>
    //????? --></action>
    //? 因為在這里生產的報表直接返回給ajax前臺,所以在xwork.xml中不需要配置返回結果,因為根本不調用。
    ?? return null;
    ?}

    }

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

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

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

    posted on 2008-04-25 10:27 蔣家狂潮 閱讀(361) 評論(0)  編輯  收藏 所屬分類: JWeb
    主站蜘蛛池模板: 日本大片在线看黄a∨免费| 永久免费在线观看视频| 高清国语自产拍免费视频国产| 亚洲欧洲日本天天堂在线观看| 久久青草免费91线频观看不卡| 亚洲产国偷V产偷V自拍色戒| 国产又黄又爽胸又大免费视频 | 亚洲第一成年免费网站| 亚洲区视频在线观看| 成在人线AV无码免费| 美国毛片亚洲社区在线观看| 国产免费黄色大片| 一级毛片大全免费播放下载 | 最近中文字幕完整版免费高清| 亚洲高清在线mv| 成人a视频片在线观看免费| 久久精品熟女亚洲av麻豆| 亚洲色偷偷综合亚洲AV伊人| a级毛片免费全部播放无码| 亚洲成a人片在线观看中文动漫| 亚洲免费视频网址| 色欲aⅴ亚洲情无码AV| 亚洲真人无码永久在线| 18女人腿打开无遮掩免费| 亚洲精品无码av片| 精品国产日韩亚洲一区| 91精品成人免费国产片| 国产综合成人亚洲区| 图图资源网亚洲综合网站| 成人免费午夜视频| 国产裸体美女永久免费无遮挡| 亚洲欧洲日韩国产综合在线二区| 亚洲人成电影网站免费| 久久高潮一级毛片免费| 亚洲人成777在线播放| 亚洲AV无码不卡在线观看下载| 久久国产乱子伦免费精品| 美女被爆羞羞网站免费| 亚洲男女性高爱潮网站| 亚洲 国产 图片| 最近中文字幕mv手机免费高清|