使用 GWT 和 RESTful Web 服务构建动态的组织树
?
?
Eclipse 中的 GWT 插件自动地创建一个示例远程服务。可以通过删除 edu.ucar.cisl.gwtRESTTutorialView.client 包中的 GreetingService.java 和 GreetingServiceAsync.java 文件以及 edu.ucar.cisl.gwtRESTTutorialView.server 包中的 GeetingServiceImpl.java 来删除它。还需要删除 web.xml 文件中这个远程服务的 servlet 配置,删除 WAR 文件夹中的 GwtRESTTutorialView.html 文件中的 <body> 和 </body> 之间的所有内容。
下面几节详细讨论几个主题,比如创建数据 bean、通过实现 RPC 代理访问 RESTful Web 服务和回调以及构建 GWT Web 界面。这些组件位于下面四个包中。(如果在 Eclipse 中没有的话,就创建它们。)可以从 下载 部分下载源代码。
edu.ucar.cisl.gwtRESTTutorialView.client.bean — 包含客户机的应用程序 Java bean。 edu.ucar.cisl.gwtRESTTutorialView.client.callback — 包含回调类的实现。 edu.ucar.cisl.gwtRESTTutorialView.client — 包含模块入口类GwtRESTTutorialView
。它还包含用于创建 GWT Web 界面的其他几个接口、类和图像文件。RPC 代理的客户端类也在这个包中。 edu.ucar.cisl.gwtRESTTutorialView.server — 包含 RPC 代理的服务器端实现的类。
清单 6. edu.ucar.cisl.gwtRESTTutorialView.client.bean.OrganizationItemData
?
?
?
在 Project Explore 中右键单击项目名,选择 Run As > Web Application or Debug As > Web Application 运行它。复制 Developer Mode 窗口中的 URL 并把它粘贴到您喜欢的浏览器中。这个应用程序看起来应该像图 3 这样。
图 3. 浏览器中显示的组织树应用程序
回页首
结束语
GWT 可以帮助 Java 开发人员构建功能丰富、响应性的桌面风格应用程序,尤其是大型 Web 应用程序。在本文中,我演示了如何使用 GWT Tree 部件显示公司的组织结构。我使用一个 RPC 代理与 RESTful Web 服务集成。RESTful Web 服务使用 JSON 作为数据格式。只在需要时装载组织数据和职员数据,动态地创建树节点(组织)和树叶(职员)。将回调实现为真正的类,从而促进代码重用并允许在运行时与客户机数据关联。使用定制的树图像显示组织和职员,使用弹出窗口显示组织和职员的详细信息。
本文基于由 National Science Foundation 支持的部分研究工作,这些工作基于它与 University Corporation for Atmospheric Research 之间的合作协议。National Center for Atmospheric Research 是由 National Science Foundation 发起成立的。