图表组件FusionChartsFree的收费版FusionChartsSuite提供的标签处理,JSON数据格式,等更加丰富的功能,官方网站:http://www.fusioncharts.com/

 

   写一个JSP标签,一个Java文件,一个标签定义,避免重复写好多嵌入FusionChartsFree的代码。

 

  第一步:定义标签属性等信息,编写TLD文件;

  第二步:编写标签处理的代码;  

  第三步:测试标签;

  第四步:打包发布。


   关键:TLD文件

   




    1.0
    1.2
    jrtz
    http://www.sunrise.com/jrtz
    
        fcf
        com.sunrise.broncho.tag.FusionChart
        JSP
        
        
            chartSWF
            true
            true
            
        
        
            divId
            true
            true
            
        
        
            chartId
            true
            true
            
        
        
            dataXml
            false
            true
            
        
        
            dataUrl
            true
            true
            
        
        
            chartWidth
            false
            true
            
        
        
            chartHeight
            false
            true
            
        
        
            deCode
            false
            true
            
        
        
            charName
            false
            true
            
        
    


FusionChartsFree的相关:http://aiilive.blog.51cto.com/1925756/1267021

    关键:Java业务处理

 

import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.net.URLEncoder;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.TagSupport;
/**
 * 使用FusionChartsFree图标组件的标签支持类
 *
 * @author ZhangXiao
 * @time 2013-8-12
 */
public class FusionChart extends TagSupport {
    /**
     *
     */
    private static final long serialVersionUID = -455570295257618661L;
    private String chartSWF = "";
    private String divId = "";
    private String dataUrl = null;
    private String dataXml = null;
    private String chartId = divId + "chart";
    private int chartWidth = 300;
    private int chartHeight = 180;
    private boolean deCode = false;
    private String charName = "UTF-8";
    @Override
    public int doStartTag() throws JspException {
        try {
            byte[] script = createScript().getBytes();
            pageContext.getOut().write(new String(script, "UTF-8"));
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return super.doStartTag();
    }
    /**
     * 通过标签参数创建JavaScript脚本信息
     *
     * @return 返回图表渲染脚本
     */
    private String createScript() {
        StringBuffer sb = new StringBuffer();
        sb.append("");
        }
        return sb.toString();
    }
    /**
     * 对URL进行解码
     *
     * @param url
     * @return 返回解码字符串
     */
    private String decode(String url) {
        try {
            return URLDecoder.decode(url, this.charName);
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return url;
    }
    /**
     * 对URL进行编码
     *
     * @param url
     * @return 返回编码字符串
     */
    private String encode(String url) {
        try {
            return URLEncoder.encode(url, this.charName);
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return url;
    }
}

 

 关于测试参见附件例子FusionChartsFree JSP Tag web工程,例子文件要去掉.txt后缀。