2016-12-07 132 views
0

我想顯示一個jFreeChart使用jsp。圖表已生成,但無法在瀏覽器中查看。它在瀏覽器中顯示一個空框架。是否有其他配置要執行?jFreeChart沒有在瀏覽器中顯示

JSP頁面:

%@page contentType="text/html" pageEncoding="UTF-8"%> 

<%@ page import="java.awt.*" %> 
<%@ page import="java.io.*" %> 
<%@ page import="org.jfree.chart.*" %> 
<%@ page import="org.jfree.chart.axis.*" %> 
<%@ page import="org.jfree.chart.entity.*" %> 
<%@ page import="org.jfree.chart.labels.*" %> 
<%@ page import="org.jfree.chart.plot.*" %> 
<%@ page import="org.jfree.chart.renderer.category.*" %> 
<%@ page import="org.jfree.chart.urls.*" %> 
<%@ page import="org.jfree.data.category.*" %> 
<%@ page import="org.jfree.data.general.*" %> 

<% 
      final double[][] data = new double[][]{ 
       {210, 300, 320, 265, 299}, 
       {200, 304, 201, 201, 340} 
      }; 

      final CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
        "Team ", "", data); 

      JFreeChart chart = null; 
      BarRenderer renderer = null; 
      CategoryPlot plot = null; 


      final CategoryAxis categoryAxis = new CategoryAxis("Match"); 
      final ValueAxis valueAxis = new NumberAxis("Run"); 
      renderer = new BarRenderer(); 

      plot = new CategoryPlot(dataset, categoryAxis, valueAxis, renderer); 
      plot.setOrientation(PlotOrientation.VERTICAL); 
      chart = new JFreeChart("Srore Bord", JFreeChart.DEFAULT_TITLE_FONT, plot, true); 

      chart.setBackgroundPaint(new Color(249, 231, 236)); 

      Paint p1 = new GradientPaint(
        0.0f, 0.0f, new Color(16, 89, 172), 0.0f, 0.0f, new Color(201, 201, 244)); 
      renderer.setSeriesPaint(1, p1); 

      Paint p2 = new GradientPaint(
        0.0f, 0.0f, new Color(255, 35, 35), 0.0f, 0.0f, new Color(255, 180, 180)); 
      renderer.setSeriesPaint(2, p2); 

      plot.setRenderer(renderer); 

      try { 
       final ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection()); 
       final File file1 = new File("D:/barchart.png"); 
       ChartUtilities.saveChartAsPNG(file1, chart, 600, 400, info); 
      } catch (Exception e) { 
       out.println(e); 
      } 
%> 

<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" > 
     <!meta http-equiv="refresh" content="1"> 
     <title>JSP Page</title> 
    </head> 

    <body> 
     <IMG SRC="barchart.png" WIDTH="600" HEIGHT="400" BORDER="0" USEMAP="#chart"> 
    </body> 
</html> 

回答

0

首先這更是一個HTML的問題。

「d:\ barchart.png」將不會是您的Web服務器加載映像的正​​確目錄。您的IMG參考是相對於當前頁面。但是,您將文件放置在驅動器D的根目錄中。您需要將輸出位置移動到Web瀏覽器可訪問的某個位置,並調整HTML輸出中的引用。

順便說一句:生成圖像這可能只適用於單個用戶。並行訪問頁面可能會在每次調用時刪除並重新創建映像。這可能會導致並行訪問顯示錯誤。

相關問題