关于ZK这个框架,国内使用的用户应该比较少,国内的资料也相当的少,但是在国外,这个东西已经很多人在使用了,以前也没怎么接触过,最近开始使用ZK来做开发,发现这东西在使用的时候,还蛮有意思的,所以准备记下使用日志,留给以后回顾和大家分享
首先需要知道ZK是一个什么东西,这个框架是我国台湾的朋友开发的,他是一个事件驱动(event-driven)的,基于组件(component-based)的,用以丰富网络程序中用户界面的框架。ZK包括一个基于AJAX事件驱动的引擎(engine),一套丰富的XUL和XHTML,以及一种被称为ZUML(ZK User Interface Markup Language,ZK用户界面标记语言)的标记语言
要使用ZK,需要下载ZK提供的一些基础jar包和ZK开发团队提供了一个基于eclipse做的一个开发插件zk studio,当然最好下个demo,上面有一些例子可以很直观的看到zk实现的效果
在这里下载:http://www.zkoss.org/,最新版本有2个,一个是3.6,一个是5.0,其中5.0是一个商业版本,而3.6是开源的,我在项目里使用的是3.6版本
下载完之后,把zk studio里面的东西直接复制到eclipse文件夹下面,然后打开eclipse,在新建项目里面就可以找到zk project了,当然,也可以自己建java的web项目,然后把下载好的zk的bin包里面的jar文件全部放到项目下面.
在项目里面的WebContent下面找到index.zul,如果没有,就在WebContent下面建立一个(注意,zk把代码和视图做了分离,这样在开发和以后维护的时候,代码更清晰,zul文件相当于我们使用的jsp文件,而zs文件相当于我们的java文件,如果没有下载zk studio的话,打开方式按照他们相对的文件类型打开,ps:他这种拆分法和C#有点类似,如果学过C#的话,应该很好理解)
index.zul里面的代码如下
我们来一行一行的分析
ZK是以事件驱动(event-driven)的,基于组件(component-based)的,用以丰富网络程序中用户界面的框架
page是一系列组件的集合,一个页面限制属于它的组件,这样它们会被展示在浏览器的特定部分。一个页面被自动创建当ZK 加载器(ZK loader)解释完一个ZUML页面时。里面的属性 title 表示页面的标题,这个标题将被作为浏览器窗口标题(window caption)的一部分.
window相当于zk的一个ID空间,和我们java里面的包的意思差不多,就是为了组件的唯一性,title表示窗口的标题,border表示边框.有两种选择,normal
和 none,而width表示窗口的宽度
label是zk的一个组件,是标签的意思,基本用于展示文字,属性value就是显示在页面上的文字,其中${desktop.webApp.version}充分体现了基于组件调用的好处,在下一篇文章里,我会介绍下这个内容
表示window这个id空间结束的标记,这里和html不同,html里面允许可以没有结束标记,但zk里面必须要有,不然会报异常
好累,先写到这里吧!