ECharts Java 动态加载数据

1、前台JSP页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>



	
	ECharts
	
	
	


	
2、后台JSON数据

protected void doPost(HttpServletRequest request,
		HttpServletResponse response) throws ServletException, IOException {
	String[] categories = {"鞋", "衬衫", "外套", "牛仔裤"};
	Integer[] values = {80, 50, 75, 100};
	Map json = new HashMap();
	json.put("categories", categories);
	json.put("values", values);
	JsonUtils.writeJson(json, request, response);
}

3、FastjsonPropertyFilter

package com.echarts.utils.json;

import java.util.HashSet;
import java.util.Set;

import com.alibaba.fastjson.serializer.PropertyFilter;

/**
 * FASTJSON属性过滤器
 * 
 * @author MrChu
 * @version 1.0
 * @date 2015年3月12日
 */
public class FastjsonPropertyFilter implements PropertyFilter {
	
	private final Set includes = new HashSet();
	private final Set excludes = new HashSet();
	
	public boolean apply(Object source, String name, Object value) {
		if (excludes.contains(name)) {
			return false;
		}
		if (excludes.contains(source.getClass().getSimpleName() + "." + name)) {
			return false;
		}
		if (includes.size() == 0 || includes.contains(name)) {
			return true;
		}
		if (includes.contains(source.getClass().getSimpleName() + "." + name)) {
			return true;
		}
		return false;
	}
	
	public Set getIncludes() {
		return includes;
	}
	
	public Set getExcludes() {
		return excludes;
	}
	
}

4、JsonUtils

package com.echarts.utils.json;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Arrays;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature;

/**
 * JSON工具类
 * 
 * @author MrChu
 * @version 1.0
 * @date 2015年3月12日
 */
public class JsonUtils {
	
	public static void writeJson(Object object, 
			HttpServletRequest request, HttpServletResponse response) {
		writeJsonByFilter(object, null, null, request, response);
	}
	
	public static void writeJsonByIncludesProperties(Object object, String[] includesProperties,
			HttpServletRequest request, HttpServletResponse response) {
		writeJsonByFilter(object, includesProperties, null, request, response);
	}
	
	public static void writeJsonByExcludesProperties(Object object, String[] excludesProperties,
			HttpServletRequest request, HttpServletResponse response) {
		writeJsonByFilter(object, null, excludesProperties, request, response);
	}
	
	public static void writeJsonByFilter(Object object, String[] includesProperties,
			String[] excludesProperties, HttpServletRequest request, HttpServletResponse response) {
		response.setContentType("text/html;charset=utf-8");
		response.setHeader("Cache-Control", "no-cache");
		PrintWriter writer = null;
		try {
			writer = response.getWriter();
			FastjsonPropertyFilter filter = new FastjsonPropertyFilter();
			if (includesProperties != null && includesProperties.length > 0) {
				filter.getIncludes().addAll(Arrays. asList(includesProperties));
			}
			if (excludesProperties != null && excludesProperties.length > 0) {
				filter.getExcludes().addAll(Arrays. asList(excludesProperties));
			}
			String userAgent = request.getHeader("User-Agent");
			if (userAgent.indexOf("MSIE") > -1 && (userAgent.indexOf("MSIE 6") > -1)) {
				writer.write(JSON.toJSONString(object, filter, 
						SerializerFeature.WriteDateUseDateFormat, 
						SerializerFeature.DisableCircularReferenceDetect, 
						SerializerFeature.BrowserCompatible));
			} else {
				writer.write(JSON.toJSONString(object, filter, 
						SerializerFeature.WriteDateUseDateFormat, 
						SerializerFeature.DisableCircularReferenceDetect));
			}
			writer.flush();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			if (writer != null) {
				writer.close();
			}
		}
	}

}

5、最终实现效果

ECharts Java 动态加载数据_第1张图片

ECharts首页:http://echarts.baidu.com/

ECharts Java 类库:http://git.oschina.net/free/ECharts

你可能感兴趣的:(Java,Web,ECharts)