">
你现在的位置:首页>电脑学院>网站建设>

开源Ajax框架 ZK富Internet 应用程序教程实例

04-19  作者:佚名    点击:   【   收藏 打印 关闭
 ZK 是一个用 Java™ 代码编写的开源 Asynchronous JavaScript + XML (Ajax) 框架,使用该框架,您无需编写 JavaScript 代码就可以编写一个支持 Web 2.0 的富 Internet 应用程序。Dojo 等典型的 Ajax 框架拥有一些 JavaScript 库,用于公开某些 API 以进行 “Ajax 化” 调用。另一方面,ZK 使用一个基于 XML 的元定义(meta-definition)来定义用户界面。当客户机请求这个页面时,XML 将转化为 HTML 代码。本文将向您介绍 ZK,通过一个真实的示例来展示其使用方法,这个示例运行在 Apache Tomcat 上并连接到 MySQL 数据库。

  简介 胶南IT门户网

  您可以将 ZK 看做是没有 JavaScript 的 Ajax。它包含一个基于 Ajax 的、事件驱动的引擎,一组丰富的 XHTML 和 XUL 元素,一种名为 ZUML 的标记语言,这种语言用于创建特性丰富的用户界面。业务逻辑可以通过 Java 代码直接编写并集成到您的应用程序中,并基于事件或组件触发。ZK 最强大的特性是其丰富的、用于用户界面开发的控件库。有意思吧?

胶南IT门户网足不出户买电脑www.jiaonanpc.com

  首先,我将更详细地描述前面的术语:

胶南电脑网http://www.jiaonanpc.com

  XHTML:可扩展超文本标记语言(Extensible Hypertext Markup Language),是 HTML 和 XML 的结合体,结合了 HTML 的威力和灵活性与 XML 的可扩展性。清单 1 提供了一个 XHTML 代码示例。

清单 1. XHTML 代码示例 买卖IT产品就上胶南电脑网www.jiaonanpc.com

<?xml version="1.0" encoding="iso-8859-1"?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 
Transitional//EN" "DTD/xhtml1-transitional.dtd"> 
<html xml:lang="en" lang="en" xmlns="http://www.w3.org/1999/xhtml"> 
 <head> 
 <title>Hello ZK</title> 
 </head> 
 <body> 
 <h1>Introducing XHTML</h1> 
 </body> 
 </html>

  XUL:XML 用户界面语言(XML User Interface Language),简称 XUL(发音同 “Zool”),是一种由 Mozilla 研发的标记语言,一个用于描述图形用户界面的 XML 应用程序。XUL 能够创建多种元素,比如输入控件、工具栏、菜单、树状图、键盘快捷键等。清单 2 展示了一个 XUL 代码示例。

清单 2. XUL 代码示例 买卖IT产品就上胶南电脑网www.jiaonanpc.com

<?xml version="1.0"?> 
<?xml-stylesheet href="
chrome://global/skin/" type="text/css"?> 
<window id="main" title="My App" width="300" height="300" 
  xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> 
  <caption label="Hello World"/> 
  </window>
IT

  ZUML:ZK 用户界面标记语言(ZK User Interface Markup Language),用于定义富用户界面。由于它基于 XML,因此每个元素都描述组件,而属性描述组件值。清单 3 展示了一个 ZUML 代码示例。

清单 3. ZUML 代码示例

http://%77%77%77%2e%6a%69%61%6f%6e%61%6e%70%63%2e%63%6f%6d

<window title="Hello ZUML" border="normal"> 
  Hello World! 
 </window>

  获取 ZK

  获取和安装 ZK 非常简单。ZK 文档网站上包含大量关于库和如何建立文件夹结构的文档。因此,获取 ZK(包括运行 hello world 应用程序)应该非常简单。 胶南IT门户网足不出户买电脑www.jiaonanpc.com

  为何要使用 ZK? 胶南IT门户网足不出户买电脑www.jiaonanpc.com

  ZK 是一个直接 Ajax 实现 — 或者换句话说,一个以服务器为中心的模型。ZK 与其他框架不同,其他框架包含大量令人眼花缭乱的 Ajax 调用细节。另外,Ajax 调用需要大量使用 JavaScript 和相关知识,以便在浏览器(客户机)上操作 Document Object Model (DOM) 并在客户机/服务器通信过程中同步数据。ZK 消除了这些复杂性,使您能够专注于业务逻辑。ZK 的其他好处包括:

  丰富的用户界面。

胶南电脑网http://www.jiaonanpc.com

  Web 服务访问。 http://%77%77%77%2e%6a%69%61%6f%6e%61%6e%70%63%2e%63%6f%6d

  组件数据绑定。 买卖IT产品就上胶南电脑网www.jiaonanpc.com

  简单但强大的标记语言 ZUML。

http://%77%77%77%2e%6a%69%61%6f%6e%61%6e%70%63%2e%63%6f%6d

  由于没有客户机代码,因此具有高度的可维护和可扩展性。

http://%77%77%77%2e%6a%69%61%6f%6e%61%6e%70%63%2e%63%6f%6d

  高度易用性。 胶南电脑网http://www.jiaonanpc.com

  提高开发人员生产力。

胶南IT门户网足不出户买电脑www.jiaonanpc.com

  ZK 应用

  为理解 ZK 的工作方式,我们来看一个真实示例。这个示例是一个客户管理应用程序,用户可以通过它进行各种操作,比如添加新客户,编辑客户数据,以及数据库中的客户条目的软删除(soft deletion)。但是,在深入代码之前,我将描述几个通过 ZK 生成的用户界面屏幕。检查过这些屏幕之后,我将描述 ZK 的架构,它是生成这个出色 UI 的底层引擎。最后,我将介绍这个应用程序使用的详细代码和配置参数。

http://%77%77%77%2e%6a%69%61%6f%6e%61%6e%70%63%2e%63%6f%6d

  图 1 展示了这个客户管理应用程序的初始屏幕。 买卖IT产品就上胶南电脑网www.jiaonanpc.com

图 1. Manage customer index 页面
使用 ZK 框架的富 Internet 应用程序:一个开源 Ajax 框架 胶南IT门户网

移动到下一页或直接移动到特定页面的能力。

胶南IT门户网足不出户买电脑www.jiaonanpc.com

图 2. 顶部菜单栏
使用 ZK 框架的富 Internet 应用程序:一个开源 Ajax 框架 胶南IT门户网足不出户买电脑www.jiaonanpc.com

  图 2 展示了这个客户管理应用程序的顶端菜单栏,它使用 ZK 的菜单栏小部件实现,包含 Register New Customer 和 Exit 两个选项。 胶南IT门户网足不出户买电脑www.jiaonanpc.com

  现在您已经检查了这个示例应用程序的几个用户流,我们现在讨论 ZK 的架构细节。

买卖IT产品就上胶南电脑网www.jiaonanpc.com

  ZK 内部结构

买卖IT产品就上胶南电脑网www.jiaonanpc.com

  ZK 应用程序的行为与桌面应用程序类似,因为用户活动通过 Client Engine 自动触发服务器上的事件。反过来,服务器上的组件更新视图以匹配客户机上的视图。客户机(浏览器)只充当一个视图,而应用程序在服务器上运行,并且能够完全访问数据库、Web 服务等资源。因此,安全不是问题。

胶南电脑网http://www.jiaonanpc.com

 ZK 框架中有 3 个主要组件:ZK Client Engine、ZK Loader 和 ZK Update Engine。 胶南电脑网http://www.jiaonanpc.com

  ZK Client Engine:这是 ZK 的客户端,发送请求到服务器以获取相应的 ZK 响应,这个引擎使用这些响应来更新浏览器中的 DOM。

胶南电脑网http://www.jiaonanpc.com

  ZK Loader:这个组件基于客户机请求的 URL 生成一个 HTML 页面。 胶南IT商家大联盟

  ZK Update Engine:也称为 Asynchronous Update (AU) Engine,这个组件负责接收 Ajax 请求并更新 ZK 组件中的对应属性,以便 Client Engine 能够更新浏览器中的视图。 胶南IT商家大联盟

图 3. ZK 架构
使用 ZK 框架的富 Internet 应用程序:一个开源 Ajax 框架 jiaonanpc.com

  图 3 中描述的流的机制如下: 买卖IT产品就上胶南电脑网www.jiaonanpc.com

  ZK Loader 根据客户机请求的 URL 提供 HTML,包括 CSS、 JavaScript 等。这包括 ZK Client Engine,它负责监控客户端事件,将 ZK Requests 发送到服务器并从服务器接收 ZK Responses。

胶南IT商家大联盟

  Client Engine 根据 onChange、onClick 等用户动作触发事件。

  这些事件调用 ZK Update Engine,该引擎更新 ZK 组件的属性并响应 Client Engine。

http://%77%77%77%2e%6a%69%61%6f%6e%61%6e%70%63%2e%63%6f%6d

  接收到这个响应之后,Client Engine 更新浏览器中的 DOM 树,以便用户能够看到这个更新后的视图。

  使用 ZK 管理客户 买卖IT产品就上胶南电脑网www.jiaonanpc.com

  接下来,我将继续介绍创建一个示例应用程序来管理客户的细节。我使用 Eclipse IDE 来展示应用程序的创建,但您可以选择使用任何 IDE。

  基本的思路是创建一个动态 Web 应用程序项目并将其指向应用服务器运行时,这在本例中为 Apache Tomcat 运行时。 买卖IT产品就上胶南电脑网www.jiaonanpc.com

  建立新项目和运行时后,复制图 4 中显示的目录结构。 http://%77%77%77%2e%6a%69%61%6f%6e%61%6e%70%63%2e%63%6f%6d

·相关文章