FusionCharts实例,改变之网络

1、servlet配置

<servlet>
    <servlet-name>ChartDataAct</servlet-name>
    <servlet-class>com.love.action.ChartDataAct</servlet-class>
  </servlet>


  <servlet-mapping>
    <servlet-name>ChartDataAct</servlet-name>
    <url-pattern>/ChartDataAct</url-pattern>
  </servlet-mapping>


2、java代码

package com.love.action;


import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


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


import com.google.gson.Gson;


public class ChartDataAct extends HttpServlet {



/**
     * serialVersionUID:TODO(用一句话描述这个变量表示什么)
     *
     * @since 1.0.0
     */
    
    private static final long serialVersionUID = 6627846392109536031L;




public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {


request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
response.setHeader("pragma", "no-cache");
response.setHeader("cache-control", "no-cache");
PrintWriter pw = response.getWriter();

//模拟连接数据库读取数据
List<Map<String, Object>> list= new ArrayList<Map<String, Object>>();
Map<String, Object> map = null;
for (int i = 0; i < 15; i++) {
map = new HashMap<String, Object>();
map.put("LABEL", (2000+i)+"年");
map.put("A", 10+(i*2)-2);
map.put("B", 15+(i*3)-5);
list.add(map);
}

//将数据用json串的格式发送到页面
pw.println(new Gson().toJson(list));
pw.flush();
}



public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {


doGet(request, response);

}


}


3、页面

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path;
request.setAttribute("path",basePath);
%>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>FusionChart图表</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">
<script type="text/javascript" src="${path }/page/js/jquery.min.js"></script>
<script type="text/javascript" src="${path }/page/js/FusionCharts.js"></script> 
<style type="text/css">
body{
width: 1920px;
height: 2160px;
margin:0px;
font-family: Arial;
background-color: #2682b1;
}
</style>
  </head>
  <body>
    <button οnclick="test('${path }/page/swf/MSLine.swf')">折线图</button><br>
    <button οnclick="test('${path }/page/swf/MSBar2D.swf')">横向直方图</button><br>
    <button οnclick="test('${path }/page/swf/MSColumn2D.swf')">柱状图</button><br>
    <button οnclick="test('${path }/page/swf/MSArea.swf')">面积图</button><br>
    <button οnclick="test('${path }/page/swf/MSCombi2D.swf')">2D饼状图</button><br>
    <button οnclick="test('${path }/page/swf/MSCombi3D.swf')">2D饼状图</button><br>
           <!-- 这个div用于放置生成chart -->
    <div id="chart"></div>
    
    <script type="text/javascript">
    
    //此处配置用于chart分风格,如标题,颜色,字体等),详细配置请查看chart API.
    var  chartHead = "<chart  bgAlpha='0,0' animation='1' plotFillRatio='100' showPlotBorder='0' ";
chartHead += "  formatNumberScale='0' ";
         chartHead += " baseFontSize='20' baseFontColor='ffffff' showValues='0' showBorder='0' useRoundEdges='0' ";
         chartHead += " canvasBgAlpha='100' canvasBgcolor='2682b1' ";
         chartHead += " canvasBorderColor='f1f1f1' canvasBorderThickness='3' canvasBorderAlpha='100' ";
         chartHead += " showAlternateHGridColor='1' hoverCapBgcolor='2682b1' alternateHGridColor='52a1c8' alternateHGridAlpha='100'";
         chartHead += " divLineThickness='1' divLineAlpha='0' divLineColor='ffffff' numdivlines='6'";
         chartHead += " anchorRadius='5' anchorBorderThickness='3' lineThickness='5'";
         chartHead += " legendBorderAlpha='100' legendBorderColor='ffffff' legendBgAlpha='0' legendShadow='1'>";

    function test(chartName){ 
    var categorie = "<categories>";
var datasetA = "<dataset seriesName='第一条线' color='fb9147' >";
var datasetB = "<dataset seriesName='第二条线' color='7BFC00' >";

    //  swf文件路径     图表id:随便起,  宽         高  
    var chart01 = new FusionCharts(chartName, "chartId01", 1270, 550,"0", "0");
    //使用ajax请求获取所需数据
    $.ajax({
url:"${path }/ChartDataAct",
async:true,
type:"POST",
success:function(returnedData){
var list=eval(returnedData);
for ( var i = 0; i < list.length; i++) {
categorie+="<category label='"+list[i].LABEL+"'/>";
datasetA +="<set value='"+list[i].A+"'/>";
datasetB +="<set value='"+list[i].B+"'/>";
}


categorie += "</categories>";
datasetA +="</dataset>";
datasetB +="</dataset>";


chart01.setTransparent(true);//chart背景透明
//为chart写入数据
chart01.setXMLData( chartHead + categorie + datasetA + datasetB  + "</chart>");
chart01.render("chart");//将chart写入到id为chart的div中
}
});
    }
    </script>
    
  </body>
</html>


3、导入资源



4、struts2json支持

<package name="ajaxAdminManage" namespace="" extends="json-default">
<!-- 查询树形菜单 -->
<action name="ajaxQueryTreeMenu" class="menuAction" method="ajaxQueryTreeMenu">
<result type="json" />
</action>

</package>


5、action实例


/**

* @方法说明: 异步获取街道信息列表
* @参数: @throws IOException
* @return void
* @throws
*/
public void ajaxQueryChinaStreets() throws IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
// 获取当前查询字段
String searchByName = request.getParameter("searchByName");
if (searchByName != null && !(searchByName.isEmpty())) {
searchByName = Escape.unescape(searchByName);
}
// 获取当前页码
String currentPage = request.getParameter("page");
// 初始化page
if (currentPage == null || currentPage.equals("")) {
currentPage = "1";
}
int intPage = Integer.parseInt(currentPage);
Long totalCount = null;
// 获取当前数据库中的省份的记录总数
totalCount = chinaStreetsService.queryChinaStreetsCount(searchByName);
// 初始化页码对象
int number = 10;
if(request.getParameter("rows")!=null){
number=Integer.parseInt(request.getParameter("rows"));
}


// 当前页开始记录
int start = (intPage - 1) * number;
// 获取街道数据
List<PChinaStreets> chinaStreetsList = new ArrayList<PChinaStreets>();
chinaStreetsList = chinaStreetsService.queryChinaStreetsList(
searchByName, start, number);
out.print(TransformToJOSN.returnEndJson(totalCount, chinaStreetsList));
} catch (Exception e) {
out.write(TransformToJOSN.returnMessageJson("result", "数据库操作异常,查询信息失败!"));
e.printStackTrace();
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值