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

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


          網站導航:
           
          主站蜘蛛池模板: 同江市| 杨浦区| 张家界市| 株洲县| 富锦市| 深圳市| 龙州县| 修文县| 岳阳市| 巴中市| 辰溪县| 五大连池市| 古丈县| 当涂县| 成安县| 泸水县| 桐城市| 丰原市| 商城县| 桃园市| 来安县| 临洮县| 苏州市| 晋宁县| 隆林| 闸北区| 吉安市| 兴文县| 神木县| 龙江县| 临朐县| 茶陵县| 微山县| 五指山市| 玛多县| 永善县| 雷山县| 雷州市| 象山县| 漠河县| 陇西县|