解决方案 »
- java调用webservices问题
- 调试struts1.3遇到的问题
- JSF中tree2组件,如何用程序控制展开某个结点。好象没有相关的方法可用?
- 为什么不能加入struts框架呢
- *****一个很急的struts问题,已经问了半个月了可是没人帮我解答一下,周一就答辩了
- tomcat7+jdk1.7环境下,jstl-1.2引用报错
- 我的j2ee是否已经安装成功
- 想看看日本编程的格式......
- 运行struts程序时遇到的异常
- 关于xml文件的传输问题
- 小白问一个初级问题请各位大牛不要介意,贴出3行代码和一个错误,求解决方案。
- struts2.0.11,<s:include>可以传值,在2.3.8版本无法传值,同样的代码
前台:$(document).ready(function() {
var myChart1 = new FusionCharts("/js/FusionCharts/MSLine.swf", "myChartId", "500", "300", "0", "0"); myChart1.setDataURL("/xmlData/emperMonitorMSLine.xml"); myChart1.render("graphicsShowDataOne");
//var myChart2 = new FusionCharts("/js/FusionCharts/RealTimeLine.swf", "myChartId2", "500", "300", "0", "0");
//var url = "/xmlData/emperMonitorRealTimeLine.xml";
//myChart2.setDataURL(url);
// myChart2.render("graphicsShowDataTwo");
getChartDate();
}); function getChartObj(){
var myChart2 = new FusionCharts("/js/FusionCharts/RealTimeLine.swf", "myChartId2", "550", "300", "0", "0");
return myChart2;
}
function getChartDate(){
var url = "/temperMonitor/temperMonitorAction!findRealTimeTemperMonitor.action";
$.ajax({
type:"POST",
url:url,
success:function (data){
var myChart = getChartObj();
myChart.setDataXML(data);
myChart.render("graphicsShowDataTwo");
}
}) ;
}第一步:
你之前先通过实时的那个SWF先 展示出来了页面。获取了初始化的数据展示出来?初始化数据方法:
public String findRealTimeTemperMonitor() {
// 获取配置的实时刷新时间间隔时间
String refresfInterval = PropertyUtils
.getConfigParam("monitor.real.time");
List<DataSet> dataSets = new ArrayList<DataSet>();
DataSet dataSet1 = new DataSet("室内温度", "ff5904", "ff5904", "ff5904");
DataSet dataSet2 = new DataSet("室外温度", "ffffff", "ffffff", "ffffff");
dataSets.add(dataSet1);
dataSets.add(dataSet2); if (null == refresfInterval) {
refresfInterval = "6000";
} String query_url = "/temperMonitor/temperMonitorAction!findRealTimeTemperMonitorData.action";
StringBuffer buffer = new StringBuffer();
buffer.append("<chart ");
buffer.append("caption=\"室内外温度实时监控动态线性图\" ");
buffer.append("yAxisName=\"温度值\" ");
buffer.append("xAxisName=\"周期\" ");
buffer.append("bgColor=\"000000\" "); // buffer.append("bgAlpha=\"100\" ");
// buffer.append("showBorder=\"1\" ");
// buffer.append("canvasBorderThickness=\"2\" ");
// buffer.append("canvasBorderColor=\"008040\" ");
// buffer.append("canvasBgColor=\"000000\" ");
// buffer.append("numdivlines=\"16\" ");
// buffer.append("numVDivLines=\"16\" ");
// buffer.append("numDisplaySets=\"16\" ");
// buffer.append("divLineColor=\"008040\" ");
// buffer.append("vDivLineColor=\"008040\" ");
// buffer.append("divLineAlpha=\"100\" ");
// buffer.append("baseFontColor=\"00dd00\" ");
// buffer.append("toolTipBgColor=\"000000\" ");
// buffer.append("toolTipBorderColor=\"008040\" ");
buffer.append("baseFontSize=\"11\" ");
// buffer.append("showAlternateHGridColor=\"0\" ");
// buffer.append("legendBgColor=\"000000\" ");
// buffer.append("legendBorderColor=\"008040\" ");
buffer.append("refreshInterval=\"" + refresfInterval + "\" ");
buffer.append("dataStreamURL=\"" + query_url + "\" ");
buffer.append("numberSuffix=\"℃\" ");
buffer.append(">"); Map<String, Object> map = new HashMap<String, Object>();
map.put("real_time", "true");
// 获取数据库数据
List<TemperMonitor> temperMonitors = this.temperMonitorService
.findResultForPager(map);
try {
if (null != temperMonitors && temperMonitors.size() > 0) { buffer.append(" <categories>"); for (TemperMonitor temperMonitor : temperMonitors) {
buffer.append("<category label=\""
+ temperMonitor.getMonitor_cycle() + "\" />");
}
buffer.append("</categories>"); buffer
.append("<dataset seriesName=\"室内温度\" color=\"ff5904\" anchorBorderColor=\"ff5904\" anchorBgColor=\"ff5904\"> ");
for (TemperMonitor temperMonitor : temperMonitors) {
buffer.append("<set value=\""
+ temperMonitor.getIndoor_temperature() + "\"/>");
}
buffer.append("</dataset>"); buffer
.append("<dataset seriesName=\"室外温度\" color=\"ffffff\" anchorBorderColor=\"ffffff\" anchorBgColor=\"ffffff\"> ");
for (TemperMonitor temperMonitor : temperMonitors) {
buffer.append("<set value=\""
+ temperMonitor.getOutdoor_temperature() + "\"/>");
}
buffer.append("</dataset>");
}
buffer.append("</chart>");
} catch (Exception e) {
e.printStackTrace();
} System.out.println(buffer.toString());
try {
// Struts2Utils.getRequest().setCharacterEncoding("UTF-8");;
HttpServletResponse response = Struts2Utils.getResponse();
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8"); response.getWriter().print(buffer.toString());
} catch (Exception e) {
e.printStackTrace();
}
return null;
}第二步:
你主要看看 实时的这个SWF文件 有几个重要的属性如:
String query_url = "/temperMonitor/temperMonitorAction!findRealTimeTemperMonitorData.action";这个属性:
refreshInterval = 是多久实时一次?
dataStreamURL = 这个就是上面的url 是你实时的时候去请求的地址。
下面是我实时获取数据的方法,就是上面url请求的方法public void findRealTimeTemperMonitorData() {
Map<String, Object> map = new HashMap<String, Object>();
map.put("real_time_last", "true");
List<TemperMonitor> temperMonitors = null;
// 获取数据库数据
try {
temperMonitors = this.temperMonitorService.findResultForPager(map);
} catch (Exception e) {
e.printStackTrace();
}
StringBuffer buffer = new StringBuffer();
if (null != temperMonitors && temperMonitors.size() > 0) {
for (TemperMonitor temperMonitor : temperMonitors) {
buffer.append("&lable=" + temperMonitor.getMonitor_cycle()
+ "&value=" + temperMonitor.getIndoor_temperature()
+ "|" + temperMonitor.getOutdoor_temperature());
}
} System.out.println(buffer.toString());
try {
HttpServletResponse response = Struts2Utils.getResponse();
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
response.getWriter().print(buffer.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
下面这个 就是你要返回的数据的格式,
buffer.append("&lable=" + temperMonitor.getMonitor_cycle()
+ "&value=" + temperMonitor.getIndoor_temperature()
+ "|" + temperMonitor.getOutdoor_temperature());
最后返回回去就行了