Welcome

首页 / 脚本样式 / Ajax / SmartGWT入门,第1部分 - 企业级Web 2.0开发轻松起步

SmartGWT入门,第1部分 - 企业级Web 2.0开发轻松起步2010-11-26 IBM 胥春艳 刘冬清Google Web Toolkit 发布以来,吸引了广大 Java 开发人员投身 ,也涌现出来大量基于 GWT 的扩展。新近推出的 SmartGWT 无疑是其中的佼佼 者,它是包装了成熟的 Ajax 框架 SmartClient 的 GWT API。SmartGWT 包含了 更丰富的 Web 控件,但使之从其它 GWT 扩展中脱颖而出的是强大的服务器端数 据集成功能,用户能轻松开发出操作业务数据的 Web 应用,从而使得它成为企 业级 Web2.0 开发的利器。

SmartGWT 概览

用一句话来概括,SmartGWT 是封装了 SmartClient 的 GWT API。而 SmartClient 是一个开源的企业级 Ajax 开发框架。

Google Web Toolkit 的发布,大大降低了 Java 开发人员进行 的 门槛。然而 GWT 本身提供的控件及功能相对有限。因此出现了很多第三方开源 扩展库。很多扩展库都利用 GWT,对现有的 JavaScript 库做 Java 封装,为 GWT 提供了更多可用的 API。SmartGWT 是其中的佼佼者,它的底层使用 SmartClient 这个成熟的 Ajax 库。SmartGWT 从 2008 年开始开发,一直处在 非常活跃的发展状态中。2009 年 12 月正式发布了 2.0 版,已经成为一个成熟 的 Web 2.0 开发框架。

SmartGWT 不仅仅是“又一个 Web 控件库”,它最大的特色在于提供了整合 客户端和服务器端数据的框架。由于底层的 SmartClient 实现了 Ajax 版本的 MVC 模式,这使得在 SmartGWT 中,后台数据的集成是控件内置的能力,而不是 需要用户自己去组装的模块。需要处理多种类型,结构复杂的业务数据是企业级 Web 开发的特点和难点,SmartGWT 对数据操作的关注,大大简化了企业级 Web2.0 应用开发的门槛。正是这一点让 SmartGWT 与众不同。在稍后的介绍中 可以看到,一些相当复杂的典型数据应用,在 SmartGWT 中只需很少的代码即可 实现。

总体来看,SmartGWT 有如下特色:

丰富的控件。很多较为复杂的常用界面都被包装成简单易用的控件。比如可 编辑的树形表格、查询常用的过滤器创建器和类似 Google Calendar 的日历等 等。

内置的数据整合功能。利用 SmartClient 的 MVC 模式,用户可以通过定义 数据源(Data Source),很容易地开发出能对服务器端数据进行创建,更新,获 取和删除操作的界面。甚至只要 10 行以内的代码。

支持 Skin。通过 Skin,用户能定制整套风格一致的界面方案。只需在线切 换,就可以换到全新的风格。

如此强大的功能是否上手也很难呢?否!基于 GWT 的 SmartGWT 是非常容易 使用的,即使很炫的效果,实现代码也非常简短,Java 开发人员很快就可以做 出炫目的 Web 应用。

SmartGWT 有四个不同的发行版:免费的 LGPL 版,收费的专业版,Power 版 和企业版。除了许可证的区别外,功能上的区别主要体现在服务器端。LGPL 版 是纯粹的客户端 GWT 库,而其它的收费版本,同时提供了 Servlet,SQL 连接 器等服务器端组件。本文主要介绍在 LGPL 版本中包含的客户端 GWT API。

丰富的 UI 组件

SmartGWT 提供了极其丰富的 UI 组件。除了传统的表单、菜单和对话框等组 件之外,SmartGWT 还包含了具有排序、分页、分组、过滤、汇总、打印预览和 实时更新功能的列表,组件元素间的拖拽,手风琴式分区和堆栈式布局等。可以 说,SmartGWT 是一个强大的“高级”组件库。

下面我们介绍一些有特色的组件。这些例子都来自于 SmartGWT 发行版内自 带的 Showcase 这个示例应用。

Pick Tree

类似多级菜单的树形选择器。

图 1. 树形选择器

清单 1. 树形选择器代码实例

Tree tree = new Tree();

PickTreeItem departmentItem = new PickTreeItem();
departmentItem.setValueTree(tree);

TreeGird

树和表格的组合,处理过复杂多级数据的人都想要的控件!

图 2. 树形表格