最近在研究fusioncharts报表,今天遇到一个问题很纠结,始终无法明确xml数据源的路径,忘高手指点:
后台:
public String showChart(){
try {
//获得数据集
List<SaleNum> list = this.saleNumService.getSaleNum();
Document document = DocumentHelper.createDocument();
document.setXMLEncoding("utf-8");
Element eGraph = document.addElement("graph");
eGraph.addAttribute("caption", "sale") ;
eGraph.addAttribute("xAxisName", "mon");
eGraph.addAttribute("yAxisName", "Units");
eGraph.addAttribute("showNames", "1") ;
eGraph.addAttribute("decimalPrecision", "0");
eGraph.addAttribute("formatNumberScale","0") ;
for(int i = 0;i < list.size(); i++){
Element eSet = eGraph.addElement("set");
eSet.addAttribute("label", list.get(i).getMonth());
eSet.addAttribute("value", list.get(i).getNum().toString());
eSet.addAttribute("color", "17400") ;
}
String path = Address.getAddress();//path是tomcat\webapps\项目名称
Writer out = new FileWriter(path+"\\data.xml");
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("UTF-8");
XMLWriter writer = new XMLWriter(out,format);
writer.write(document);
writer.close();
System.out.println("xml生成成功");
} catch (Exception e) {
System.out.println("xml生成失败");
e.printStackTrace();
}
return "showChart";
}前台:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
String path1 = System.getProperty("user.dir");
int num = path1.indexOf("\\bin");
String path2 = path1.substring(0,num);
out.println(path1+"\n");
out.println(path+"\n");
out.println(basePath);
out.println(path2);
String path3 = path2+"\\webapps\\ZZXJ2\\data.xml";
out.println(path3);
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>chart1</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<script type="text/javascript" src="<%=request.getContextPath() %>/js/FusionCharts.js"></script>
</head>
<body>
<div id="chartdiv" align="center">图形将出现在这个DIV里面,会覆盖文字</div>
<script type="text/javascript">
var myChart = new FusionCharts("<%=request.getContextPath()%>/FusionCharts/Column3D.swf","myChartId","600","500");
myChart.setDataURL("<%=path3%>");
myChart.render("chartdiv");
</script>
</body>
</html>页面flash看不到只有 Error in loading data. 就是xml文件的位置不对,因为生成的文件我试过,能够生成报表。请大侠指教
后台:
public String showChart(){
try {
//获得数据集
List<SaleNum> list = this.saleNumService.getSaleNum();
Document document = DocumentHelper.createDocument();
document.setXMLEncoding("utf-8");
Element eGraph = document.addElement("graph");
eGraph.addAttribute("caption", "sale") ;
eGraph.addAttribute("xAxisName", "mon");
eGraph.addAttribute("yAxisName", "Units");
eGraph.addAttribute("showNames", "1") ;
eGraph.addAttribute("decimalPrecision", "0");
eGraph.addAttribute("formatNumberScale","0") ;
for(int i = 0;i < list.size(); i++){
Element eSet = eGraph.addElement("set");
eSet.addAttribute("label", list.get(i).getMonth());
eSet.addAttribute("value", list.get(i).getNum().toString());
eSet.addAttribute("color", "17400") ;
}
String path = Address.getAddress();//path是tomcat\webapps\项目名称
Writer out = new FileWriter(path+"\\data.xml");
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("UTF-8");
XMLWriter writer = new XMLWriter(out,format);
writer.write(document);
writer.close();
System.out.println("xml生成成功");
} catch (Exception e) {
System.out.println("xml生成失败");
e.printStackTrace();
}
return "showChart";
}前台:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
String path1 = System.getProperty("user.dir");
int num = path1.indexOf("\\bin");
String path2 = path1.substring(0,num);
out.println(path1+"\n");
out.println(path+"\n");
out.println(basePath);
out.println(path2);
String path3 = path2+"\\webapps\\ZZXJ2\\data.xml";
out.println(path3);
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>chart1</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<script type="text/javascript" src="<%=request.getContextPath() %>/js/FusionCharts.js"></script>
</head>
<body>
<div id="chartdiv" align="center">图形将出现在这个DIV里面,会覆盖文字</div>
<script type="text/javascript">
var myChart = new FusionCharts("<%=request.getContextPath()%>/FusionCharts/Column3D.swf","myChartId","600","500");
myChart.setDataURL("<%=path3%>");
myChart.render("chartdiv");
</script>
</body>
</html>页面flash看不到只有 Error in loading data. 就是xml文件的位置不对,因为生成的文件我试过,能够生成报表。请大侠指教
解决方案 »
- hibernate load 报空指针
- 编写JPA项目 测试生成数据库表 报错
- 新手囧问题啊
- 用过dorado的前辈来指点一下 急!
- 请问String.getBytes()得到的数组里面怎么会有负值呢?
- java并行 job
- xslt文件加入javascript报java.lang.NoSuchMethodException问题,急啊
- Maven项目打包成war包的问题
- 用http://localhost:7001/console启动控制台后,左边的数型结构显示不出来, 只为一个小叉,请问该如何解决,愿100答谢!
- 请教:Weblogic启动后能不能有方法关掉那个DOS窗口??
- 求匿名内部类的正确使用方法,下面是一个查询数据库的方法。求解决问题。
- oracle里存的是number类型,java查询出来的对象属性是bigdecimal类型,该怎么解决?
直接把要用的东西用Stringbuffer拼成一个xml传到前台
setDataXML MS是这个 忘的差不多了
还有fusioncharts就像ajax一样 可以局部刷新的
例如:
jsp的路径是:
WebRoot下得xxx.jsp
data.xml数据路径:
FusionCharts/data.xml引用路径
myChart.setDataURL("FusionCharts/data.xml");如果jsp路径是在某个文件夹下。例如:
WebRoot/jsp/xxx.jsp引用路径
myChart.setDataURL("../FusionCharts/data.xml");意思就是说,先把路径退回到同级,然后在进入FusionCharts文件夹下的data.xml数据。