在中 Action创建JFreeChart 的图片,图片已经在 Tomcat/temp临时目录下生成了,图片如何在j s p 上显示呢?

解决方案 »

  1.   

    直接在jsp里用<%= %>就可以
      

  2.   

    String filename = ServletUtilities.saveChartAsPNG(chart, 500, 300, null,
    session);
    String graphURL = request.getContextPath() + "/servlet/DisplayChart?filename=" + filename; 这样也显示不出来?是为何?
      

  3.   

    可以用这个代码,在servlet下生成临时图片,返回图片名filename
    String filename=ServletUtilities.saveChartAsPNG(jfchart,width,height,session);
    然后拼出路径
    String graphURL=request.getContextPath()+"/servlet/DisplayChart?filename="+fileName;
    页面显示时直接调graphURL就行
    <img src="<%=graphURL%>" border=0>
      

  4.   


    我在Action的方法中就事这样写的,把路径传到jsp中,jsp中图片依旧显示不出来,图片在tomcat/temp临时目录下已经生成了,无语了....
      

  5.   


    <%@ page language="java" import="java.util.*,net.zontin.signature.util.json.*,net.zontin.signature.smcic.*" pageEncoding="UTF-8"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>用户报表统计</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <link href="${pageContext.request.contextPath}/css/management/management.css" type="text/css" rel="stylesheet" />
    <script type="text/javascript" src="../../FusionChartsFree/JSClass/FusionCharts.js"></script>
    <style type="text/css">
        <!--
    body {
         font-family: Arial, Helvetica, sans-serif;
            font-size: 12px;
    }
    .text{
    font-family: Arial, Helvetica, sans-serif;
    font-size: 12px;
    }
     -->
        </style>
    </head>
    <body>
    <%
    String json = smcic.call_get_feeinfo("", "").get("value").toString();
    JSONArray jsonArray = new JSONObject(json).getJSONArray("Table");
    String strXML = "<graph caption='User Output report' subCaption='By FeeInfo' decimalPrecision='0' showNames='1' numberSuffix=' Units' pieSliceDepth='30' formatNumberScale='0'>";
    if(jsonArray.getJSONObject(0).names() != null){
    int totalCounts = 0;
    for(int i = 0; i < jsonArray.length(); i++){
    int feeid = Integer.parseInt(jsonArray.getJSONObject(i).getString("feeid").toString());
    String feename = (String)jsonArray.getJSONObject(i).getString("feename");
    String userFeeJson = smcic.call_get_user("",feeid,0,10000).get("value").toString();
    JSONArray userFeeJsonArray = new JSONObject(userFeeJson).getJSONArray("Table");
    if(userFeeJsonArray.getJSONObject(0).names() != null){
    totalCounts = userFeeJsonArray.length();
    }
    strXML += "<set name='" + feename + "' value='" + totalCounts + "'/>";
    }
    }
    strXML += "</graph>";
    %>
    <div id="middle_right">
    <jsp:include page="../../FusionChartsFree/Includes/FusionChartsRenderer.jsp" flush="true"> 
    <jsp:param name="chartSWF" value="../../FusionChartsFree/Charts/FCF_Pie3D.swf" /> 
    <jsp:param name="strURL" value="" /> 
    <jsp:param name="strXML" value="<%=strXML %>" /> 
    <jsp:param name="chartId" value="FactorySum" /> 
    <jsp:param name="chartWidth" value="270" /> 
    <jsp:param name="chartHeight" value="270" />
    <jsp:param name="debugMode" value="false" /> 
    <jsp:param name="registerWithJS" value="false" />
    </jsp:include>
    </div>
    </body>
    </html>
      

  6.   

    要不你用这个
    FileOutputStream fos_jpg = new FileOutputStream("D:\\a.jpg");
    ChartUtilities.writeChartAsJPEG(fos_jpg,1,jfchart,550,400,null);
    把图片直接生成到本地,看看什么效果
      

  7.   

    本地tomcat的临时目录下一直都可以生成的.