`
chrissie
  • 浏览: 20124 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

amchart在struts2中的应用

阅读更多

最近做了一个SSH项目,其中有一个统计模块,查看选中的软件的下载量,通过amchart报表工具显示出软件日下载量,月下载量以及年下载量,下面简单介绍,amchart在struts2中的应用。(关于amchart的介绍,这里不累述,网上很多文章都有说明)

 

一、下载amchart

        http://www.amcharts.com/download

        选择你想使用的报表显示形状进行下载,较常用的主要是曲线图和饼图,这里以曲线图为例:Line & Area

 

二、配置struts2

        新建一个Web Project,比如:amchartDemo

        1. JAR包引用

        这里使用的是struts2的最新JAR包:struts-2.2.1.1

        该版本的struts2需要用到的JAR包有7个,一个都不能少

        可在下面工程中获取:struts-2.2.1.1\apps\struts2-blank\WEB-INF\lib

        commons-fileupload-1.2.1.jar

        commons-io-1.3.2.jar

        freemarker-2.3.16.jar

        javassist-3.7.ga.jar

        ognl-3.0.jar

        struts2-core-2.2.1.1.jar

        xwork-core-2.2.1.1.jar

 

        2. 配置web.xml (WebRoot\WEB-INF\web.xml)

<filter>
	<filter-name>struts2</filter-name>
	<filter-class>
		org.apache.struts2.dispatcher.FilterDispatcher
	</filter-class>
</filter>
<filter-mapping>
	<filter-name>struts2</filter-name>
	<url-pattern>/*</url-pattern>
</filter-mapping>

 

        3. 配置struts.xml

            可从 struts-2.2.1.1\apps\struts2-blank\WEB-INF\src\java\ 获取struts.xml,复制到你自己的项目工程(amchartDemo)的src下 

 

<struts>
	<package name="statistic" extends="struts-default">
		<action name="report" class="com.web.action.ReportAction">
			<result name="show-suc">/index.jsp</result>
		</action>
	</package>
</struts>

 

        4. 编写Action

            根据以上struts.xml的配置,创建ReportAction类,以及需要的Bean:

 

package com.web.action;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;

import com.model.beans.BaseBean;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class ReportAction extends ActionSupport {

	public String showDay() throws Exception {
		List<BaseBean> daylist = new ArrayList<BaseBean>();
		/*================数据模拟==================*/
		daylist.add(createBean(1L,"软件A","#FF0000"));
		daylist.add(createBean(2L,"软件B","#FFC0CB"));
		daylist.add(createBean(3L,"软件C","#40E0D0"));
		daylist.add(createBean(4L,"软件D","#9ACD32"));
		daylist.add(createBean(5L,"软件E","#00FF7F"));
		/*=========================================*/
		ActionContext.getContext().getSession().put("chartDataList", daylist);
		return "show-suc";
	}

	/**
	 * 创建模拟数据
	 * @author Christy Lan
	 * @version 1.0
	 * @param 
	 * @return BaseBean
	 * @exception
	 */
	private BaseBean createBean(Long id, String softName, String color){
		BaseBean bean = new BaseBean();
		bean.setSoftId(id);
		bean.setSoftName(softName);
		bean.setColor(color);
		Map<Integer, Integer> dataMap = new TreeMap<Integer, Integer>();
		//一天24小时
		for(int i = 1; i <= 24; i++){
			dataMap.put(i, getRandom());//模拟每小时的下载量
		}
		bean.setDataMap(dataMap);
		return bean;
		
	}
	
	private Integer getRandom(){
		return (int)(Math.random()*1000);
	}
}
        该bean与数据库的表结构无关,而是对数据库中的数据进行了进一步的统计处理(使用oracle的统计函数),封装成这个BaseBean。主要就是对dataMap<时刻, 下载量>的封装
package com.model.beans;

import java.util.Map;

public class BaseBean {
	
	private Long softId;//软件ID
	private String softName;//软件名字
	private String color;//该软件在amchart报表中显示的颜色
	private Map<Integer, Integer> dataMap;//存放统计信息
	
	public Long getSoftId() {
		return softId;
	}
	public void setSoftId(Long softId) {
		this.softId = softId;
	}
	public String getSoftName() {
		return softName;
	}
	public void setSoftName(String softName) {
		this.softName = softName;
	}
	public String getColor() {
		return color;
	}
	public void setColor(String color) {
		this.color = color;
	}
	public Map<Integer, Integer> getDataMap() {
		return dataMap;
	}
	public void setDataMap(Map<Integer, Integer> dataMap) {
		this.dataMap = dataMap;
	}
}
  

 

三、使用amchart

       1. 在WebRoot下新建一个目录 WebRoot/statistic/line

 

       2. 解压amline_1.6.4.1.zip

           a) 将 amline_1.6.4.1\amline 目录下的swfobject.js复制到statistic目录下(注:swfobject.js放于哪无所谓,关键是页面上的引用

           b) 将 amline_1.6.4.1\amline 目录下的amline.swf 复制到statistic/line目录下

           c) 将 amline_1.6.4.1\amline 目录下的amline_settings.xml 复制到statistic/line目录下,同时,把amline_settings.xml改名为day_settings.jsp

 

        3. 修改day_settings.jsp

           a) 在day_settings.jsp的最开始处增加如下代码:

 

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>

           b) 将<digits_after_decimal>2</digits_after_decimal> 改为

                  <digits_after_decimal>0</digits_after_decimal> 

                  这里的数值表示小数点后的位数

 

           c) 将<graphs></graphs>标签里的内容删除,替换成:

 

  <graphs>                                                    
    <s:iterator value="#session.chartDataList" status="st">
    <graph gid="<s:property value="#st.index"/>">
    	<title><s:property value="softName"/></title>
    	<line_width>2</line_width>
      	<color><s:property value="color"/></color>
      	<color_hover><s:property value="color"/></color_hover>
      	<bullet>round_outlined</bullet>
      	<balloon_text_color>000000</balloon_text_color>   
      	<balloon_text>
        	<![CDATA[{title} on {series}: 【{value}次】]]>
      	</balloon_text>
      	<selected>true</selected>
    </graph>
    </s:iterator>
  </graphs> 

        4. 在statistic/line目录下新建day_data.jsp

 

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<?xml version="1.0" encoding="UTF-8"?>   
<chart>
	<series>
		<s:iterator value="#session.chartDataList" status="st">
		<s:if test="#st.index==0">
			<s:iterator value="dataMap">
				<value xid="<s:property value="key"/>"><s:property value="key"/>时</value>
			</s:iterator>
		</s:if>
		</s:iterator>
	</series>
	<graphs>
		<s:iterator value="#session.chartDataList" status="st">
		<graph gid="<s:property value="#st.index"/>">
			<s:iterator value="dataMap">
				<value xid="<s:property value="key"/>"><s:property value="value"/></value>
			</s:iterator>
		</graph>
		</s:iterator>
	</graphs>
</chart>

        5. 补充:破解amchart

             在statistic/line目录下新建amcharts_key.txt,内容为

 

             AMCHART-LNKS-1966-6679-1965-1082


        6. WebRoot/index.jsp
            1) 引入JS
<script type="text/javascript" src="<%=basePath %>/statistic/swfobject.js"></script>
            2) amchart使用
  <body>
    <div id="flashcontent">
		<strong>You need to upgrade your Flash Player</strong>
	</div>

	<script type="text/javascript">
		// <![CDATA[		
		var so = new SWFObject("statistic/line/amline.swf", "amline", "900", "600", "8", "#FFFFFF");
		so.addVariable("path", "statistic/line/");
		so.addVariable("settings_file", encodeURIComponent("statistic/line/day_settings.jsp?<%=Math.random()%>"));
		so.addVariable("data_file", encodeURIComponent("statistic/line/day_data.jsp"));
		so.write("flashcontent");
		// ]]>
	</script>
  </body>
四、完成
       访问 http://localhost/amchartDemo/report!showDay.action  即可看到效果

分享到:
评论
1 楼 ihiyas 2011-08-31  

写得很清楚,
代码下载后也直接能用;
很不错的参考,谢谢!

相关推荐

    struts2_amchart破解中文,整合例子,java图表工具

    struts2_amchart,最好的xml,amchart,破解中文,整合例子,java图表工具

    amchart

    在.NET环境中,开发者可以通过集成AmChart与XML数据结合,为应用程序增添极具吸引力的视觉表现,以直观地展示复杂数据。 AmChart的核心功能在于其能够处理各种类型的数据,包括时间序列数据、分类数据以及地理数据...

    amChart

    2. **引用库**:在 Flex 项目的主类或所需的组件中,引入 amChart 相关的库。 3. **创建图表**:根据需求选择合适的图表类型,并实例化对应的类。 4. **配置数据**:设置数据源,可以是 JSON、XML 或其他数据格式。 ...

    AmChart中文API

    AmChart的实例帮助文档 amcharts 要一个“配置文件”(setting.xml),一个数据文件(amile_data.xml), 一个 SWFObject.js,一个对应的 SWF 就可以生成漂亮的统计报表了 1 SWFObject v1.5的对象结构 view ...

    amchart -2 Line & Area(flash chart 图表)

    6. **examples**:这个文件夹很可能包含了各种不同的图表示例,用户可以通过它们学习如何在实际项目中应用amchart库。 总结来说,这个压缩包提供了amchart库的一个实例,特别是关于线形图和面积图的实现,适合...

    AmChart折线图例子(详细)

    在这个"AmChart折线图例子(详细)"中,我们将深入探讨如何使用AmChart创建一个详细的折线图,并通过提供的链接进一步了解实际应用。 首先,要使用AmChart,你需要在HTML文件中引入相关的JavaScript库。这通常包括`...

    AmChart,MSChart实例教程

    AmChart和MSChart是两种广泛使用的图表库,用于在Web应用程序中创建动态、交互式的可视化数据。本教程将深入探讨这两个库的实例应用,帮助开发者更好地理解和掌握它们的使用。 首先,AmChart是一款JavaScript图表库...

    amchart技术说明

    #### 三、Amchart在系统架构中的集成 将Amchart集成到现有的Web应用中,需要遵循一定的步骤。以一个实时负荷曲线为例,Amchart的集成流程包括: 1. **创建SWFObject实例**:创建`amlineUnitLoad`对象,其中包含多...

    amchart饼图 asp.net版

    "amchart饼图 asp.net版" 指的是将amcharts图表库中的饼图功能应用于ASP.NET开发环境。Amcharts是一个强大的JavaScript图表库,提供了多种类型的图表,包括饼图、柱状图、线图等,用于数据可视化。ASP.NET是微软公司...

    amchart -5 Radar & Polar(flash chart 图表)

    在给定的资源中,解压缩后的文件包含了示例代码,帮助用户理解如何使用amchart -5库来创建这些图表。需要注意的是,资源中可能不包含注册码文件,但可以从其他来源获取,例如在上传者的资源列表中。 **标签:...

    AMCHART,附带几十种示例

    AMCHART是一款强大的JavaScript图表库,它提供了丰富的图表类型和高度自定义的选项,使得开发者能够轻松地在网页上创建出交互式、视觉效果出色的图形。这个压缩包包含的资源显然是AMCHART的一个实例集,提供了多种...

    C#使用amchart制作漂亮的图表

    在提供的文件名"amChart"中,可能包含了示例代码或者配置文件,你可以通过解压并查看这些文件来深入了解如何在实际项目中应用amCharts。同时,记得在实际开发中,要确保遵循良好的编程实践,如代码模块化、错误处理...

    amchart c#图表文件

    c#用来做图表的免费插件代码amchart插件 图表文件

    amchart使用方法

    2. **填写激活码**:在该文本文件中输入激活码 `"AMCHART-LNKS-1966-6679-1965-1082"`。 #### 三、Amchart 的特点 Amcharts 提供了丰富的特性和定制选项,以满足不同场景的需求: - **动画或静态**:支持创建动态...

    Amchart技术说明

    在实际应用中,Amchart可以通过JavaScript库如SWFObject进行集成。例如,可以创建一个对象实例,如amlineUnitLoad,设置其配置文件和数据文件的URL,以及其它属性如初始颜色和wmode参数,以便在页面上正确显示并交互...

    amchart破解下载,去掉水印

    amchart破解,去掉水印

    amchart_javascript破解版

    amchart破解版 javascript脚本库,具有强大的画图功能,经过破解处理可以直接使用

    WPF AmChart Charts 图形

    2. **创建图表对象**: 在代码中实例化一个图表对象,如`AmCharts.Wpf.Chart`。 3. **配置数据源**: 将数据绑定到图表,这可以通过XML、JSON或者编程方式实现。 4. **设置图表类型和系列**: 根据需求选择图表类型(如...

    amchart破解版本 图表,很好用

    amchart破解版本 图表,很好用amchart破解版本 图表,很好用amchart破解版本 图表,很好用

Global site tag (gtag.js) - Google Analytics