On 2022/07/12 05:34:32 Lukasz Lenart wrote:> Could you share some more info? struts.xml? action? Hello Lukasz, Thanks for your reply. Here are some of my codes. This code works well with struts2 2.5.30 and jfreechart-1.0.19.jar. After changing to struts2 6.0.0, the chart does not render anymore. I thank for any comment/suggetstion.Thanks.
--- ProcessDisplaytagReport.javapublic class ProcessDisplaytagReport extends ActionSupport{ private JFreeChart chart; DefaultCategoryDataset dataset = new DefaultCategoryDataset(); public String execute() throws Exception { // do other things.... return SUCCESS; } public String jfreechart_report() throws Exception { dataset = createDataset(); chart = createChart(dataset); return SUCCESS; } private static JFreeChart createChart (CategoryDataset dataset) { JFreeChart chart = ChartFactory.createBarChart( "Report(Letter grade) - Display by course", // title "Category", // domain axis label "Percentage", // range axis label dataset, // data PlotOrientation.VERTICAL, // orientation true, // include legend true, // tooltips? false // URLs? ); return chart; } private static CategoryDataset createDataset() { String series1 = "First"; String series2 = "Second"; String series3 = "Third"; String category1 = "Category 1"; String category2 = "Category 2"; DefaultCategoryDataset dataset = new DefaultCategoryDataset(); dataset.addValue(1.0, series1, category1); dataset.addValue(5.0, series2, category1); dataset.addValue(4.0, series3, category1); dataset.addValue(4.0, series1, category2); dataset.addValue(7.0, series2, category2); dataset.addValue(3.0, series3, category2); return dataset; } public JFreeChart getChart() { return chart; } public void setChart(JFreeChart chart) { this.chart = chart; }} ----- file browse_report.jsp<s:form name="ProcessDisplaytagReportForm" namespace="/Action/Assessment/" action="ProcessDisplaytagReport" validate="true" theme="simple" > <img src='jfreechart_reportProcessDisplaytagReport.action' /></s:form> ----- file struts.xml<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN" "http://struts.apache.org/dtds/struts-2.5.dtd"> <struts> <package name="Assessment" namespace="/Action/Assessment" strict-method-invocation="false" extends="tiles-default"> <result-types> <result-type name="tiles" class="org.apache.struts2.views.tiles.TilesResult" /> <result-type name="chart" class="org.apache.struts2.dispatcher.ChartResult" /> </result-types> <action name="*ProcessDisplaytagReport" method="{1}" class="action.displaytag.assessment.report.ProcessDisplaytagReport"> <result name="success" type="tiles">report_based</result> <result name="error" type="tiles">report_based</result> </action> <action name="jfreechart_reportProcessDisplaytagReport" method="jfreechart_report" class="action.displaytag.assessment.report.ProcessDisplaytagReport"> <result name="success" type="chart"> <param name="chart">chart</param> <param name="width">500</param> <param name="height">800</param> </result> </action> </package> </struts> -- tiles.xml<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE tiles-definitions PUBLIC "-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN" "http://tiles.apache.org/dtds/tiles-config_2_0.dtd"> <tiles-definitions> <definition name="report_based" template="/WEB-INF/layouts/mainLayout-page.jsp"> <put-attribute name="title" value="View based Report" /> <put-attribute name="body" value="/WEB-INF/pages/displaytag/assessment/report/browse_report.jsp" /> <put-attribute name="crumb-link" value="/Action/Assessment/ProcessDisplaytagReport.action" /> <put-attribute name="crumb-title" value="View based Report" /> <put-attribute name="tabbed" value="true" /> <put-attribute name="selected" value="menu_assessment" /> <put-attribute name="include" value="false" /> </definition></tiles-definitions>