`
cwqcwq
  • 浏览: 75724 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ZK学习实践(一)

    博客分类:
  • zk
阅读更多
ZK是一个深受欢迎的开源AJAX框架,由台湾一家软件公司开发。它是事件驱动(event-driven)、基于组件(component-based)的。ZK 包括一个基于AJAX 事件驱动的引擎(engine),一套丰富的XUL 和XHTML,以及一种被称为ZUML(ZK User Interface MarkupLanguage,ZK 用户界面标记语言)的标记语言。它提供的非常丰富的组件,能够与Ext相媲美。

一、快速开始

1、下载ZK:

ZK的官方网站 http://zh.zkoss.org 可以下载最新的ZK开发包,目前的最新版为3.6.1,2009.04.29发布。本文就以3.6.1版本讲解。

2、拷贝所需的核心包及依赖包:
将 dist/lib/ 下的所有.jar文件及dist/lib/ext下所有.jar文件全部拷贝至项目lib目录中(不要包含dist/lib/zkforge目录下的jar包)。
除了ZK本身的核心jar之外,还有bsh,poi,groovy等第三方依赖jar。这些第三方jar被ZK集成后,我们可以方便的扩展我们的应用。
下面是对jar包的一些简单说明:
ZK核心jar:
zcommon.jar、zcommons-el.jar、zhtml.jar、zk.jar、zkex.jar、zkmax.jar、zkplus.jar、zml.jar、zul.jar、zweb.jar

依赖jar:
bsh.jar: BeanShell是一个小型的,免费的,可嵌入式的,具有面向对象脚本语言特性的Java代码解释器。它能执行标准的Java语句和表达式,还自带简单的脚本命令和语法
commons-*:apache提供的一系列基础而常用的功能类库,如collections、fileupload、io、logging等
groovy.jar:它是一种基于JVM的动态语言,结合了Python、ruby等动态语言的强大特性,它的源码可以编译为标准的java字节码文件
itext.jar:一个快速产生PDF文件的jara类库
jasperreports.jar:基于java的开源报表引擎,能够支持PDF、HTML、XLS、XML、CSV等格式
jcommon.jar:一个java基础框架,提供了许多的基础功能,包括文本工具类(text utilities),用来显示关于应用程序信息的用户界面类, 布局定制管理器,一个日期选择面板, 序列化工具类, XML解析器支持类等
jfreechart.jar:用来制作图表的java开源框架,这些图表包括:饼图、柱状图(普通柱状图以及堆栈柱状图)、线图、区域图、分布图、混合图、甘特图以及一些仪表盘等等。
js.jar:Mozilla提供的一种动态解释javascript的框架
jxl.jar: JavaExcelAPI(JXL)是一个成熟,开源的Excel电子表格读取,修改,写入的项目
jython.jar:Jython是Python的纯Java实现。她无缝地结合了Java类与Python,使用户能以Python语言的语法编写在Java虚拟机上运行的软件,Jython同时拥有解释器和编译器,使其无需编译就可以测试程序代码。
mvel.jar:MVEL是一种用于Java应用程序,类似于OGNL的表达式语言。MVEL不仅非常小和敏捷,而且它的语法易于阅读与EL或OGNL比起来更像Java
ognl.jar:一种功能强大的表达式语言,被许多开源框架所引用
poi:jar:一种读写excel、word文档的框架

3、配置核心servlet
在web.xml中配置如下两个servlet:
	<servlet>
		<servlet-name>ZK</servlet-name>
		<servlet-class>org.zkoss.zk.ui.http.DHtmlLayoutServlet</servlet-class>
		<init-param>
			<param-name>update-uri</param-name>	<!-- name固定为update-uri,value为DHtmlUpdateServlet绑定的url -->
			<param-value>/zkdemo</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>

	<servlet-mapping>
		<servlet-name>ZK</servlet-name>
		<url-pattern>*.zul</url-pattern>
	</servlet-mapping>	

	<servlet>
		<servlet-name>ZK-update</servlet-name>
		<servlet-class>org.zkoss.zk.au.http.DHtmlUpdateServlet</servlet-class>
	</servlet>
		
	<servlet-mapping>
		<servlet-name>ZK-update</servlet-name>
		<url-pattern>/zkdemo/*</url-pattern>
	</servlet-mapping>


4、从helloworld开始:

<?page title="new page title" contentType="text/html;charset=UTF-8"?>
<zk>
<window title="登录" border="normal" width="360px" mode="overlapped" position="center" apply="com.cwq.zk.LoginService" >
  <grid>
    <columns sizable="false">
      <column />
      <column width="240px"/>
    </columns>
    <rows>
      <row>
        <label value="用户名"/>
        <textbox id="txtName"/>
      </row>
      <row>
        <label value="密码"/>
        <textbox id="txtPwd" type="password"/>
      </row>
      <row spans="2">
    	<div width="95%" align="right">
	        <button label="登录" forward="onLogin" />	<!-- 点击将异步调用com.cwq.zk.LoginService类的onLogin方法 -->
	        <button label="取消" forward="onCancel" />
    	</div>
      </row>
    </rows>
  </grid>
</window>
</zk>



package com.cwq.zk;

import org.zkoss.zk.ui.util.GenericAutowireComposer;
import org.zkoss.zul.Textbox;

public class LoginService extends GenericAutowireComposer {

	private Textbox txtName;//对应zul页面的名为txtName的Textbox组件

	public void onLogin() {

		alert("Hi! " + txtName.getValue());
	}
}



页面效果:




点击登录:




二、基础知识
1、ZK概览
ZK框架大致分为三大块:ZK 加载器(ZK loader),ZK AU 引擎(ZKAU Engine )和ZK 客户端引擎(ZK Client Engine)。ZK 加载器和ZK AU 引擎位于服务器端,
ZK 加载器:主要目的是加载zul页面解释它,并创建页面中所有组件,如textbox、lable等都是组件。
ZK AU 引擎:AU即Asynchronous Update异步更新,主要目的是接受ZK请求(ZK请求是一种特殊的ajax请求),并发送客户端响应。它还负责更新组件的内容及调用服务端事件处理程序。
ZK 客户端引擎:由javascript编写,浏览器缓存ZK客户端引擎,通常仅需在首次读取时设置引擎。主要用来捕捉客户端事件,一旦捕捉到,则向服务端发起ZK请求。

2、zul页面执行流程:

A. 当用户在浏览器中键入一个URL或点击一个超链接时,一个请求便被送到了Web服务器,如果URI符合ZK的配置(即DHtmlLayoutServlet绑定的url),ZK 加载器响应这一请求。
B. ZK 加载器(ZK loader)加载指定的页面然后解释它,以据此创建合适的组件。
C. 当解释完整个页面后,ZK 加载器(ZK loader)将结果送到一个HTML页面。然后这个HTML页面和ZK客户端引擎一起被送回浏览器。
D. ZK客户端引擎(ZK Client Engine)坐落在浏览器,以监视由客户的活动触发的事件,例如挪动鼠标,或改变某个值。一旦监测到,它就通知ZK AU引擎(通过发送一个ZK请求)。
E. 当从客户端引擎接到ZK 请求后,如果有需要的话AU 引擎就更新相应组件的内容。然后,AU 引擎通过调用相关的事件处理程序(如果有的话)来通知应用程序。
F. 如果应用程序选择改变组件的内容,添加或移动组件,AU 引擎通过ZK 响应(ZKresponses)将更新后组件的新内容送至客户端引擎。
G. 这些ZK 响应实际上是一些命令,这些命令指示客户端引擎如何更新DOM 树的内容。

起步教程就到这里,在以后,我会深入介绍ZK,敬请关注。
  • 大小: 57.4 KB
  • 大小: 61 KB
分享到:
评论

相关推荐

    ZK_学习总结 ZK学习的好帮手

    ZK 是一个基于组件模型的Java Web...总结,ZK学习是一个涉及环境配置、组件使用、事件处理、组件组合与自定义等多个方面的过程。通过深入理解和实践,开发者可以充分利用ZK的优势,构建高效、用户友好的Web应用程序。

    zk学习开发

    【ZK学习开发】 ZK是一个基于Java的轻量级MVC框架,专注于构建富客户端用户界面,尤其在Web应用中表现出色。它的设计目标是简化UI开发,提供直观、高效的用户交互体验,同时保持服务器端的高效处理能力。ZK通过事件...

    ZK资料学习zk框架的助手

    通过深入学习和实践ZK,你能够提升解决分布式系统中一致性问题的能力,为构建高可用、可扩展的分布式应用打下坚实基础。无论是在大数据处理、微服务架构还是云计算领域,ZK都是一个不可或缺的工具。所以,让我们一起...

    zk框架学习中文手册

    ZK框架是一个基于Java开发的轻量级Web应用框架,专为构建富客户端用户界面而设计。它将服务器端的业务逻辑与客户端的界面...对于希望提升Web应用用户体验的开发者,ZK框架提供了丰富的工具和资源,值得深入学习和实践。

    ZK入门学习资料:ZK实例学习

    "ZkDemo3"可能是Zookeeper的实战代码示例,包括创建节点、设置数据、监听节点变化等操作,适合初学者动手实践,深入理解Zookeeper的功能。 总结,学习Zookeeper首先要掌握其基本概念和功能,然后通过实际操作理解其...

    zk基础学习 ZK实例

    通过对Zookeeper的深入学习和实践,开发者能够更好地应对分布式系统中的各种挑战,提高系统的稳定性和可扩展性。而`zk-src-3.0.0`这个文件很可能是Zookeeper 3.0.0版本的源代码,对于想要研究Zookeeper内部工作原理...

    zk学习文档 学习新的框架

    在"zk学习文档"中,我们可能会接触到以下几个关键知识点: 1. **Zookeeper架构**:ZK采用主从(Leader-Follower)架构,由多个服务器节点组成一个集群。集群中的一个节点作为领导者,其他节点作为跟随者。领导者...

    ZK分布式一致性原理与实践

    《从PAXOS到ZK分布式一致性原理与实践》是一本深度结合理论与实践的书籍,不仅深入解析了PAXOS算法和Zookeeper的设计思想,还提供了丰富的实战指导,对于想要深入了解分布式一致性问题和Zookeeper的读者来说,是...

    ZK-AJAX学习笔记

    从给定的文件信息来看,这是一份详细的ZK-AJAX学习笔记,记录了从准备环境、下载运行ZK到深入学习各个组件的过程。ZK是一款基于Ajax的开源Web应用框架,它允许开发者使用类似桌面应用的组件来构建Web应用,而无需...

    ZK安装 ZK入门 开发 讲解 共3个pdf

    ZK,全称为ZK Framework,...通过这三个PDF文档的学习,你可以系统地掌握ZK框架,从安装环境到实际开发,再到高级特性的运用,逐步成为一名熟练的ZK开发者。记得理论结合实践,不断尝试和探索,才能真正掌握ZK的魅力。

    ZK4500SDK包 ZK4500、中控指纹仪、SDK开发包带各种语言的demo

    ZK4500SDK是中控科技针对其ZK4500指纹仪推出的一款开发包,旨在帮助开发者高效地集成指纹识别功能到自己的系统或应用中。本文将详细介绍ZK4500SDK的主要内容及其在不同语言环境下的应用。 首先,ZK4500是一款高性能...

    ZK中文开发手册 html

    ZK框架主要用于构建富客户端Web应用程序,它提供了一种简单的方式来创建交互式的用户界面,而无需深入学习复杂的JavaScript或Ajax技术。 ZK框架的核心特点在于其组件模型,它提供了丰富的服务器端组件,使得开发者...

    zk框架demo

    通过阅读和运行这个项目,开发者可以更直观地理解ZK的工作方式,并从中学习到实际开发中的最佳实践。 **四、总结** ZK框架以其简洁的API、强大的组件库和优秀的用户体验,成为了开发富客户端Web应用的有力工具。...

    zk.zip_zk

    此外,ZK的布局管理器也是值得深入学习的部分。它支持各种常见的布局方式,如绝对布局、流式布局、网格布局等,让开发者能够灵活地组织和调整组件的位置和大小。通过使用布局管理器,可以轻松实现复杂的界面设计,而...

    ZK Style Guide

    ZK Style Guide 是一份专为ZK框架开发者编写的样式使用指南。ZK框架是一个基于组件的Java开发框架,用于构建富客户端用户界面,尤其适用于Web应用。这份指南详细阐述了如何在ZK环境中优雅地设计和实现用户界面,提升...

    ZKDemoZKDemoZKDemo

    总的来说,这个"ZKDemo"项目是一个很好的起点,用于学习和实践ZK框架的基本概念和操作,同时也可以用来熟悉Java Web应用的开发流程。通过研究这个项目,开发者可以逐步掌握ZK框架的精髓,进而构建更复杂的应用。

    zk+sptingmvc+ibatis 项目案例

    【标题】"zk + SpringMVC + iBatis 项目案例"是一个综合性的IT实践教程,旨在帮助初学者深入理解并应用ZK、SpringMVC和iBatis这三种技术。ZK是一款强大的轻量级Java桌面应用框架,用于构建富客户端用户界面;...

    ajax框架 zk开发手册

    《ZK开发手册》是ZK框架的官方文档,详细介绍了ZK的使用方法、组件、API、事件处理、集成策略等内容,是开发者学习和解决问题的重要参考资料。阅读该手册,可以帮助开发人员更好地理解和运用ZK框架,提高开发效率,...

    ZK 6.5 Essentials

    总之,《ZK 6.5 Essentials》为希望使用ZK框架开发Web应用的开发者提供了一个全面的学习路径。从基础知识到高级技术,从简单示例到复杂项目,这本书都是一个宝贵的资源。通过阅读本书,开发者将能够构建出功能丰富、...

Global site tag (gtag.js) - Google Analytics