[Srtuts2 / JFreeChart] Intégration dans la JSP
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:
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:
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:
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.