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>  

Reply via email to