Generating a Chart with a JSP

This example consists of a JSP working with a bean (pieChart) that contains a JspBean. The HTML image tag is the value of the imageTag property from pieChart. The following is the JSP.

(Download Code)

 

<%@page contentType=”text/html”%>

<jsp:useBean id="pieChart" scope="page"

    class="com.imsl.demo.jsp.SampleChartBean"/>

<html>

    <head><title>Pie Chart</title></head>

    <body>

        <h1>Pie Chart</h1>

        <jsp:setProperty name=”pieChart”  property=”*”/>

        <% pieChart.createChart(request); %>

        <jsp:getProperty name=”pieChart”  property=”imageTag”/>

    </body>

</html>

 

 

In the above JSP, line 1 flags that an HTML page is being generated. Line 2 creates the object pieChart, which is an instance of SampleChartBean. This object has page scope, so it is discarded after the page has been generated. Line 7 sets attributes in pieChart using parameters in the request. Attributes are set in pieChart using its setter methods, following the usual pattern for Java beans. Line 8 calls the createChart method to create the chart tree and store it in the session. This is Java code enclosed in the special delimiters. Line 9 inserts the HTML image tag obtained by calling pieChart.getImageTag().

The class SampleChartBean uses a JspBean. It creates a pie chart and registers it with the session obtained from the request. The getImageTag() method returns an HTML tag which refers to the ChartServlet servlet that returns the chart image to the browser.

 

(Download Code)

 

import com.imsl.chart.*;

import java.awt.Color;

 

public class SampleChartBean {

 

    private JspBean bean;

 

    public SampleChartBean() {

        bean = new JspBean();

        bean.setSize(300, 300);

    }

 

    public void createChart(javax.servlet.http.HttpServletRequest request) {

        Chart chart = new Chart();

        bean.registerChart(chart, request);

 

        double y[] = {35., 20., 30., 40.};

        Pie pie = new Pie(chart, y);

        pie.setLabelType(Pie.LABEL_TYPE_TITLE);

        pie.setFillOutlineColor(Color.blue);

 

        PieSlice[] slice = pie.getPieSlice();

 

        slice[0].setFillColor(Color.red);

        slice[0].setTitle("Red");

 

        slice[1].setFillColor(Color.blue);

        slice[1].setTitle("Blue");

        slice[1].setFillOutlineColor(Color.yellow);

 

        slice[2].setFillColor(Color.black);

        slice[2].setTitle("Black");

        slice[2].setExplode(0.3);

 

        slice[3].setFillColor(Color.yellow);

        slice[3].setTitle("Yellow");

    }

 

    public String getImageTag() {

        return bean.getImageTag();

    }

}



Visual Numerics - Developers of IMSL and PV-WAVE
http://www.vni.com/
PHONE: 713.784.3131
FAX:713.781.9260