1

I am using Struts2. I need to display JFreeChart in a web page. Can any body help me on that?

Edit: it is getting displayed in binary format.

public String execute() throws Exception {
    System.out.println("Refresh bar Chart");
    response.setContentType("image/png");
    OutputStream outstream = response.getOutputStream();
    try {
        JFreeChart chart = getChartViewer();
        ChartUtilities.writeChartAsPNG(outstream, chart, 500, 300);
        System.out.println("Created bar Chart");
        return SUCCESS;
    } finally {
        outstream.close();
        response.flushBuffer();
    }
}
trashgod
  • 203,806
  • 29
  • 246
  • 1,045
Kingshuk
  • 11
  • 1
  • 2

3 Answers3

1

You can convert your charts to images and include them in your HTML files.

thelost
  • 6,638
  • 4
  • 28
  • 44
  • public String execute() throws Exception { System.out.println("Refresh bar Chart"); response.setContentType("image/png"); OutputStream outstream = response.getOutputStream(); try { JFreeChart chart = getChartViewer(); ChartUtilities.writeChartAsPNG(outstream,chart,500,300); System.out.println("Created bar Chart"); return SUCCESS; } finally { outstream.close(); response.flushBuffer(); } } it is getting displayed in binary formate – Kingshuk Mar 30 '10 at 13:23
1

JSP/Struts2/whatever-MVC pages always ends up as HTML. To display images in HTML, you need the <img> element or whatever MVC component you'd normally to use to render a HTML <img> element. To locate an image, you need to let its src attribute point to a valid URL which returns the image. This can be a static or dynamic resource, the client doesn't see the difference.

<img src="images/foo.png">

In a JSP/Servlet environment, the normal practice is to let a Servlet listen on the particular URL using url-pattern in web.xml such as /images/* and let it create/load/find the image based on request parameters or pathinfo and write the image to the outputstream of the response along a correct set of response headers.

You can find a basic example here.

BalusC
  • 1,082,665
  • 372
  • 3,610
  • 3,555
1

There is a plugin: http://struts.apache.org/2.x/docs/jfreechart-plugin.html

leonbloy
  • 73,180
  • 20
  • 142
  • 190