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:
Xml代 码
- <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>