在JSP页面中写了个显示图表的一段代码,然后在Tomcat下的零时目录tmp下已经可以生产图片了,但是在JSP页面中就是现实不出来,可能是路径的问题,可我不知道怎么改,麻烦各位了,JSP页面代码如下<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="org.jfree.data.general.DefaultPieDataset" %>
<%@ page import="org.jfree.chart.ChartFactory" %>
<%@ page import="org.jfree.chart.JFreeChart,org.jfree.chart.servlet.ServletUtilities" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%        DefaultPieDataset dpd = new DefaultPieDataset(); dpd.setValue("管理人员", 25);
dpd.setValue("市场人员", 25);
dpd.setValue("开发人员", 45);
dpd.setValue("其他人员", 10);

JFreeChart chart = ChartFactory.createPieChart("某公司组织结构图",dpd, true, false, false);

String fileName = ServletUtilities.saveChartAsPNG(chart,800,600,session);

String url = request.getContextPath() + "D:/tomcat/Tomcat 6.0/temp/DisplayChart?filename=" + fileName;


 %>
 
 <img src="<%= url %>" width="500" height="300">
</body>
</html>在页面我查看了源文件,打印的图片地址是
<img src="/st2D:/tomcat/Tomcat 6.0/temp/DisplayChart?filename=jfreechart-29350.png" width="500" height="300">

解决方案 »

  1.   

    String url= "./DisplayChart?filename=" + fileName+"";
      

  2.   

    这是什么路径?"/st2D:/tomcat/Tomcat 6.0/temp/DisplayChart?filename=jfreechart-29350.png"
    路径应该是:D:/tomcat/Tomcat 6.0/temp/jfreechart-29350.png
    你的url拼接 明显错误
      

  3.   

    还是不行,这次页面显示的路径是
    <img src="./DisplayChart?filename=jfreechart-33669.png" width="500" height="300">
    我的Tomcat目录是
    D:\tomcat\Tomcat 6.0\temp
    在这个目录下有图片生成
      

  4.   

    还是不行,页面显示的路径是
     <img src="./DisplayChart?filename=jfreechart-42417.png" width="500" height="300">
    我的Tomcat目录是
    D:\tomcat\Tomcat 6.0\temp
    在这个目录下可以生产图片
    然后这样改后服务器报了警告
    警告: Could not find action or result
    There is no Action mapped for namespace / and action name DisplayChart. - [unknown location]
    at com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:178)
    at org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:61)
    at org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:39)
    at com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:47)
    at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:478)
    at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:395)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:228)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:216)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:634)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445)
    at java.lang.Thread.run(Unknown Source)
      

  5.   

    我的项目路径是在E盘,而Tomcat是装在D盘,怎么样子才能让我的项目读取到D盘里的图片,我用DW直接选择图片的时候,它就会提示要复制到根目录,我选NO的话在页面还是不会显示,如果选YES,它就会复制到我的webroot目录下,然后那样就可以显示,怎么样才能改好这个,这种方法它是自动在服务器零时文件夹下生成图片,但是我每提交一次它都会生成一张,不可能要我每一张都复制到webroot下吧,应该有什么改进的地方吧,我是按着浪曦的教程来配置的,但是它教程上却可以,很怪异,麻烦各位了
      

  6.   

    看问题,你的 url mapping不对呀,DisplayChart在web。xml写了没有啊
      

  7.   

    可以不生成图片的吧,直接用stream
      

  8.   

    http://www.ibm.com/developerworks/cn/java/l-jfreechart/
      

  9.   

    web.xml里写
    <servlet>
    <servlet-name>DisplayChart</servlet-name>
    <servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name>DisplayChart</servlet-name>
    <url-pattern>/servletDisplayChart</url-pattern>
    </servlet-mapping>
      

  10.   

    我也遇到了你这样的问题,你看的是风中叶老师的视频吧,我找了很久,后来我在web.XML里面把Struts2的配置给注释掉了,就行了,但是如果要和struts2同时配置两个 我这里就出问题了
      

  11.   

     String url = request.getContextPath() + "D:/tomcat/Tomcat 6.0/temp/DisplayChart?filename=" + fileName;这句话改为:
     String url = request.getContextPath() + "/servlet/DisplayChart?filename=" + fileName;
    web.xml里:<url-pattern>/servletDisplayChart</url-pattern>
    改为:<url-pattern>/servlet/DisplayChart</url-pattern>