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;
   }
}