在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">
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">
路径应该是:D:/tomcat/Tomcat 6.0/temp/jfreechart-29350.png
你的url拼接 明显错误
<img src="./DisplayChart?filename=jfreechart-33669.png" width="500" height="300">
我的Tomcat目录是
D:\tomcat\Tomcat 6.0\temp
在这个目录下有图片生成
<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)
<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>
String url = request.getContextPath() + "/servlet/DisplayChart?filename=" + fileName;
web.xml里:<url-pattern>/servletDisplayChart</url-pattern>
改为:<url-pattern>/servlet/DisplayChart</url-pattern>