標籤:page utf-8 time name prefix ade clear average 適合
做了一個簡單的基於Struts2 + Json + HighChart的小例子,費了一下午+晚上的時間,雖然簡單,但對於我這種Jquery+Ajax小白的人還是很值得記錄的。
哈哈哈
# 0. 關鍵點找到highchart的模板網站https://www.hcharts.cn/docs/basic-tooltip
# 1. 關鍵點,在struts.xml中配置傳回型別為json
<action name="queryItemsJson" class="com.bestplan.action.JsonAction" method="jsonTest">
<result type="json">
<param name="root">dataMap</param>
</result>
# 2. 關鍵點2
public class JsonAction {
private Map<String, Object> dataMap;
public String jsonTest(){
dataMap = new HashMap<String,Object>();
dataMap.clear();
List<List<Float>> aveTimeForCpsWay = new ArrayList<List<Float>>();
for(int x=0;x<4;x++){
List<Float> temp = new ArrayList<Float>();
for(int i=0;i<12;i++){
temp.add((new Random().nextFloat())*100); // 隨機產生12個float數
}
aveTimeForCpsWay.add(temp);
}
List<String> name = new ArrayList<String>();
name.add("Tokyo");
name.add("New York");
name.add("London");
name.add("Berlin");
dataMap.put("dataArr", aveTimeForCpsWay);
dataMap.put("nameArr", name);
return "success";
}
public Map<String, Object> getDataMap() {
return dataMap;
}
public void setDataMap(Map<String, Object> dataMap) {
this.dataMap = dataMap;
}
}
# 3. 關鍵點<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@ taglib prefix="s" uri="/struts-tags" %><!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><script src="js/jquery.1.9.1.min.js"></script><script src="js/highcharts.js"></script><script type="text/javascript">function requestJson(){ alert("nihao"); $.ajax({ type:‘GET‘, url:‘queryItemsJson.action‘, contentType:‘application/json;charset=utf-8‘, //資料格式是json串 dataType:"html", //接受響應的資料類型 success:function(data){//返回json結果 alert(data); var d = eval("("+data+")"); var chart = new Highcharts.Chart({ chart: { renderTo:‘container‘, type: ‘column‘ }, title: { text: ‘Monthly Average Rainfall‘ }, subtitle: { text: ‘Source: WorldClimate.com‘ }, xAxis: { categories: [ ‘Jan‘, ‘Feb‘, ‘Mar‘, ‘Apr‘, ‘May‘, ‘Jun‘, ‘Jul‘, ‘Aug‘, ‘Sep‘, ‘Oct‘, ‘Nov‘, ‘Dec‘ ], crosshair: true }, yAxis: { min: 0, title: { text: ‘Rainfall (mm)‘ } }, tooltip: { headerFormat: ‘<span style="font-size:10px">{point.key}</span><table>‘, pointFormat: ‘<tr><td style="color:{series.color};padding:0">{series.name}: </td>‘ + ‘<td style="padding:0"><b>{point.y:.1f} mm</b></td></tr>‘, footerFormat: ‘</table>‘, shared: true, useHTML: true }, plotOptions: { column: { pointPadding: 0.2, borderWidth: 0 } }, series: [{ name: d.nameArr[0], data: d.dataArr[0] }, { name: d.nameArr[1], data: d.dataArr[1] }, { name: d.nameArr[2], data: d.dataArr[2] }, { name: d.nameArr[3], data: d.dataArr[3] }] }); } } ); }</script></head><body><input type="button" onclick="requestJson()" value="請求是json,輸出是json"><div id="mydiv"></div> <div id="container" style="min-width:400px;height:400px"></div></body></body></html>
Struts2+json+hignchart(簡單柱狀圖實現--適合jquery小白)