Oracle神諭

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            284 隨筆 :: 9 文章 :: 106 評論 :: 0 Trackbacks

          Intro

          I am rendering a chart to the output stream. Instead of streaming it directly to the response.out, I create a ChartResult , and let webwork do the chaining for me.

          I generate the chart in one class, and I render it out in another class, efftectively decoupling the view from the actions. You can easily render it out to file or some view other than a web response.out if you wish.

          Configuration
          xwork.xml -result-types definitions
          <result-types>
          ?? <result-type name="chart" class="myapp.webwork.extensions.chartResult"/>
          </result-types>
          xwork.xml -action definitions
          <action name="viewModerationChart" class="myapp.webwork.actions.ViewModerationChartAction">
          ?? <result name="success" type="chart">
          ????? <param name="width">400</param>
          ????? <param name="height">300</param>
          ?? </result>
          </action>

          Source Codes
          My result class search for a "chart" in the ValueStack and renders it out...

          public class ChartResult implements? Result{
          ?? private int width;
          ?? private int height;
          ?? public void execute(ActionInvocation invocation)throws Exception{
          ?????? JFreeChart chart = (JFreeChart)invocation.getStack().findValue("chart");
          ?????? HttpServeletResponse response = ServeletActionContext.getResponse();
          ?????? OutputStream os = response.getOutputStream();
          ?????? ChartUtilities.writeChartAsPNG(os,chart,width,height);
          ?????? os.flush();
          ?? }
          ?????
          ?? public void setHeight(int height){
          ???? this.height=height;
          ?? }
          ??
          ?? public void setWidth(int width){
          ???? this.width=width;
          ?? }
          }

          public class ViewModerationChartAction extends ActionSupport{
          ?? private JFreeChart chart;
          ??
          ?? public String execute() throws Exception{
          ????? //chart creation logic ...
          ????? XYSeries dataSeries = new XYSeries(new Integer(1));
          ????? for(int i=0;i<=100;i++){
          ???????? dataSeries.add(i,RandomUtils.nextInt());
          ????? }
          ?????
          ????? XYSeriesCollection xyDataset = new XYSeriesCollection(dataSeries);
          ????? ValueAxis xAxis = new NumberAxis("Raw Marks");
          ????? ValueAxis yAxis = new NumberXxis("Moderated Marks");
          ?????
          ????? chart = new JFreeChart(
          ????????????????????? "Moderation Function",
          ????????????????????? JFreeChart.DEFAULT_TITLE_FONT,
          ????????????????????? new XYPlot(
          ??????????????????????????? xyDataset,
          ??????????????????????????? xAxis,
          ??????????????????????????? yXis,
          ??????????????????????????? new
          ?????????? StandardXYItemRenderer(StandardXYItemRender.LINES),
          ??????????????????????????? false????????????????
          ????????????????????? );
          ????????????????????? ...
          ????? )
          ?? }
          ??
          ?? public JFreeChart getChart(){
          ????? return chart;
          ?? }
          }

          posted on 2006-04-11 11:55 java世界暢談 閱讀(317) 評論(0)  編輯  收藏 所屬分類: WEBWORK

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 洪雅县| 成安县| 肇源县| 天全县| 丹巴县| 梁山县| 清镇市| 察哈| 连山| 平乡县| 新源县| 澎湖县| 廊坊市| 资中县| 汶川县| 陈巴尔虎旗| 六安市| 大埔区| 寻甸| 宜兰市| 宣恩县| 龙江县| 井研县| 怀仁县| 公安县| 安西县| 中阳县| 新泰市| 鲁甸县| 定州市| 宣汉县| 青海省| 津南区| 闽侯县| 当阳市| 台前县| 乐安县| 建瓯市| 北票市| 本溪市| 福海县|