使用 Google Charts、Ajax 和 Project Zero(WebSphere sMash)创建精巧的 mashup
2009-11-17 00:00:00 来源:WEB开发网当然,归根到底,您仍然需要发送这样一个 URL 到 Google 的服务器,以获得所需的图表。为此,您将编写一个简单的 Groovy 方法,该方法将 JSON 对象中的字段值复制到一个图表 URL 中。借助 Groovy 的 GString 类型,您可以使 URL 字符串只有一行,而不必创建一个 java.lang.StringBuilder 并逐个添加值。这个 Groovy 方法的代码如清单 2 所示。
清单 2. 构造图表 URL 的 Groovy 代码
def create(chart)
{
return "http://chart.apis.google.com/chart?chxt=x,y" +
"&cht=${chart.type}&chs=${chart.width}x${chart.height}" +
"&chtt=${chart.title}&chd=t:${chart.data.join(',')}" +
"&chxl=0:|${chart.xaxis.join('|')}|1:|${chart.yaxis.join('|')}";
}
基本上,清单 2 中的代码直接从 JSON 对象获得值并(使用 $ 语法)将这些值嵌入到 URL 中。惟一不同的是当 JSON 字段为数组时的情况,在此情况下,必须将它们的值连接成一个字符串。使用 join() 方法很容易做到这一点。
您应该将清单 2 中的代码复制到一个名为 /zero.charts/app/scripts/charts.groovy 的文件中。通过将该代码放到 /app/scripts 目录中,可以让应用程序中的其他 Groovy 脚本以及在依赖关系列表中包括 zero.charts 的任何应用程序访问到它。使该代码易于重用的最后一步是为之创建一个 Groovy 绑定,这将使开发人员可以直接在代码中调用 create() 方法,而不必使用 Zero 的更通用的 invokeMethod() 。要添加 Groovy 绑定,将清单 3 中的 Java™ 类定义复制到 /zero.charts/java 目录中。如果之前没有提供这个绑定,那么开发人员必须 输入粗体显示的代码行。
更多精彩
赞助商链接