Bonjour à tous,

J'essaye actuellement d'intégrer des objets JFreeChart dans mon application implémentant le framework struts2. Je pense avoir suivi toutes les étapes mais il y'a une chose que je n'arrive pas à comprendre : comment intégrer le diagramme dans ma jsp une fois le traitement effectué ?

Voici la partie de mon code qui concerne l'intégration JFreeChart :

struts.xml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
<package name="struts" namespace="/" extends="struts-default">
... Toutes mes actions 'normales'
</package>
<package name="charts" namespace="/" extends="struts-default">
        <result-types>
            <result-type name="chart" class="org.apache.struts2.dispatcher.ChartResult"/>
    	</result-types>
        <action name="SetupChart" class="org.chic.inoweb.view.actions.treatments.SetupChartAction">
            <result name="success" type="chart">
                <param name="value">chart</param>
                <param name="type">png</param>
                <param name="height">150</param>
                <param name="width">200</param>
            </result>
        </action>
</package>
SetupChartAction.java
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
 
public class SetupChartAction extends ActionSupport {
 
    private static Logger _logger = Logger.getLogger(SetupChartAction.class);
    private JFreeChart chart = null;
 
    @Override
    public String execute() throws Exception {
 
        _logger.debug("[doExecute] : BEG");
        XYSeries dataSeries = new XYSeries(new Integer(1)); //pass a key for this serie
        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 NumberAxis("Moderated Marks");
 
        // set my chart variable
        chart = new JFreeChart(
                "Moderation Function",
                JFreeChart.DEFAULT_TITLE_FONT,
                new XYPlot(
                xyDataset,
                xAxis,
                yAxis,
                new StandardXYItemRenderer(StandardXYItemRenderer.LINES)),
                false);
        chart.setBackgroundPaint(java.awt.Color.white);
 
         _logger.debug("[doExecute] : END");
        return SUCCESS;
    }
 
    public JFreeChart getChart() {
        return chart;
    }
}
Et enfin...
MaPage.jsp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
<html>
    <head>...</head>
    <body>
        <s:action name="/SetupChart" executeResult="true" namespace="/" />
    </body>
</hml>
En fait, l'action n'est même appelé (pas de trace du logger). Je ne vois donc vraiment pas comment faire ! J'ai donc sûrement dû oublier une étape primordiale mais je ne vois pas laquelle...

Merci d'avance pour votre aide.