ZK开发手册

摘要

Version 3.5.1

目录

1. 简介
传统的Web应用程序
点对点(Ad-hoc)AJAX应用
ZK: 它是什么
ZK: 它不是什么
ZK: 局限
2. 让我们开始吧
Hello World!
互动性
zscript元素
脚本语言
将脚本代码放在一个单独的文件中
attribute元素
EL表达式
id属性
if unless属性
forEach属性
useapply属性
use属性
apply 属性
zscript实现Java类
forward属性一起使用
手动创建组件
不使用ZUML来开发ZK应用程序
为某一页面定义新的组件
3. 基础
架构概况
执行流
组件,页面和桌面
组件
页面
桌面
组件树的森林
组件:视觉部分和Java对象
标识
UUID
ID空间
命名空间和ID空间
zscript中定义变量和函数
事件
桌面和事件处理
桌面及创建组件
ZUML 和XML命名空间
4. 组件活动周期
加载页面的活动周期
页面初始阶段
组件创建阶段
事件处理阶段
响应阶段
更新页面的活动周期
请求处理阶段
事件处理阶段
响应阶段
模型(The Molds)
组件垃圾回收
5. 事件监听及处理
通过标记语言添加事件监听器
通过程序添加或移除事件监听器
声明一个成员
动态地添加与移除事件监听器
延期事件监听器
为页面动态地添加和移除事件监听器
调用顺序
中止调用序列
事件监听器提交,发送和回显事件
提交事件
发送事件
回显事件
线程(Thread)模型
挂起及恢复
长操作(Long Operations)
初始与清理事件处理线程
处理每个事件前的初始化
处理完每个事件后清理
6. ZK用户界面标记语言
XML
元素必须格式良好
特殊字符必须被替换
属性值必须被指定且用引号包围
注释
字符编码
命名空间
条件式流程
If 和Unless
Switch和Case
Choose 和 When
反复式流程
each变量
forEachStatus变量
如何在事件监听器中使用 eachforEachStatus 变量
随机存取(Load on Demand)
使用fulfill属性的随机存取
使用事件监听器的随机存取
隐含对象
隐含对像列表
关于Request和Execution的信息
进程指令
page指令
component指令
init指令
variable-resolver指令
import指令
linkmeta指令
ZK属性
apply属性
use属性
if属性
unless属性
forEach属性
forEachBegin属性
forEachEnd属性
fulfill属性
forward 属性
ZK元素
zk 元素
zscript元素
attribute元素
variables元素
custom-attributes元素
组件集及XML命名空间
标准的命名空间
7. ZUML页面及XUL组件集
基本组件
标签
按钮
单选按钮和单选按钮组
图像
图像映射(Imagemap)
音频
输入控件
日历
进度条
Slider
计时器
分页
窗口
标题
closables属性
sizable属性
样式类
contentStyle属性
边框
重叠,弹出,Modal,标示和嵌入
position属性
通用对话框
布局组件
嵌套的borderlayout组件
sizeborder属性
splittablecollapsible 属性
flex 属性
open 属性
onOpen 属性
箱式模型
spacing属性
widthsheights 属性
分割器
Tab箱
嵌套tab box
The Accordion Tab Boxes
orient属性
Tabs的align属性
closable属性
disabled属性
Tab面板的随机存取
网格
滚动网格
可变列宽
分页网格
排序
实况数据
辅助表头
特殊属性
更多的布局组件
Separators 和空格
Group boxes
工具栏
菜单栏
执行一个菜单命令
像复选框一样使用菜单项目
autodrop属性
onOpen事件
更多的菜单特性
上下文菜单
定制的tooltip及弹出菜单
onOpen事件
列表框
多列列表框
栏头
栏尾
下拉列表
多选
滚动列表框
可变列表头
分页列表框
排序
特殊属性
实况数据
包含按钮的列表框
树控件
open属性和onOpen事件
多选
分页
特殊属性
Tree控件的打开时创建
下拉列表框
autodrop属性
description属性
onOpen事件
onChanging事件
Bandboxes
closeDropdown方法
autodrop属性
onOpen事件
onChanging事件
图表
实况数据
向下钻取(onClick事件)
操作区
拖放
draggabledroppable属性
onDrop 事件
使用多选拖曳
可拖曳组件的多种类型
HTML相关组件
html组件
Native命名空间,http://www.zkoss.org/2005/zk/native
XHTML命名空间, http://www.w3.org/1999/xhtml
include组件
style组件
script组件
iframe组件
用HTML FORM 和Java Servlets
name属性
支持name属性的组件
丰富用户界面
客户端行为
引用一个组件
onshowonhide 行为
CSA JavaScript工具
事件
鼠标事件
按键事件
输入事件
List和Tree 事件
Slider和Scroll事件
其它事件
8. 数据绑定
基本概念
添加一个数据源
建立数据绑定管理器
将UI组件关联至数据源
何时从数据源加载数据至UI
何时从UI组件保存数据至数据源
将相同的数据源关联至多个UI组件
关联UI组件和一个集合
在数据源和UI组件间定制转换
定义数据绑定管理的访问权限
9. 在ZUML中使用XHTML组件集
目标
有效的XHTML页面即为有效的ZUM页面
以服务器为中心的交互
像平常一样使用Servlet
差异
为每个标签创建一个组件
UUID即为ID
所有标签都有效
大小写
无模型支持
浏览器端的DOM树
TABLE和TBODY标签
事件
与JSF, JSP及其它的集成
使用已存在的Servlet
使用包含丰富
丰富一个静态的HTML页面
使用ZK JSP标签
使用ZK JSF组件
使用ZK Filter丰富动态生成的页面
10. 宏组件
使用宏组件的三个步骤
第一步. 实现
第二步 . 实现
第三步. 使用
内联宏
一个例子
常规宏
宏组件和ID空间
增设方法
11. 高级特性
标识页面
表示组件
组件路径
排序
浏览器的信息及控制
onClientInfo事件
org.zkoss.ui.util.Clients
防止用户关闭窗口
浏览器的历史管理
添加合适的状态到浏览器历史
监听onBookmarkChange事件并据此操作桌面
iframe使用书签功能
一个简单的事例
组件克隆
组件序列化
序列化会话
序列化监听器
跨页面通信
提交和发送事件
属性
跨Web应用程序通信
来自路径的Web资源
注释
注释ZUML页面
手动注释组件
获取注释
Richlets
实现org.zkoss.zk.ui.Richlet接口
配置web.xml zk.xml
会话超时管理
错误处理
加载页面时的错误处理
更新页面时的错误处理
其它
配置ZK加载器不压缩输出
12. 性能提示
使用编译过的Java代码
使用deferred 属性
deferred属性和onCreate事件
使用forward属性
使用Servlet 线程处理事件
模态窗口
消息框
文件上传
使用本地命名空间代替XHTML命名空间
延长时期(Prolong the Period)检查文件是否被修改
延迟子组件的创建
为大型Listbox使用实况数据和分页
使用ZK JSP标签或ZK JSF 组件代替ZK Filter
13. 其它设备和输出格式
ZK Mobile
Mobile组件集, http://www.zkoss.org/2007/mil
XML输出
使用ZUML页面输出产生XML 输出的三步
XML组件集
14. 国际化
地域
px_preferred_locale会话属性
请求拦截器
时区
px_preferred_time_zone 会话属性
请求拦截器
标签
本地文件
浏览器和本地URI
在Java中定位浏览器与本地资源
消息
主题
改变字体大小和/或样式
使用自制主题
主题提供者
15. 数据库连接
ZK仅为表现层
使用JDBC的简单方式 (但不推荐)
使用连接池
打开及关闭一个连接
配置连接池
易于数据库访问的ZK特性
org.zkoss.zk.ui.event.EventThreadCleanup 接口
在EL表达式中访问数据库
事务处理和org.zkoss.zk.util.Initiator
16. 整合Hibernate
什么是Hibernate
安装Hibernate>
配置ZK的配置文件
创建Java对象
映射Java对象
使用映射文件
使用Java注释
创建Hibernate 配置文件
创建DAO 对象
在ZUML页面访问持久对象
17. 整合Spring
什么是Spring
使用Spring的准备
将spring.jar复制到你的Web library
配置web.xml
创建Spring配置文件
创建Spring Bean类
在ZUML 页面内访问 Spring Bean
使用 variable-Resolver
使用 SpringUtil
Spring Security
运行一个简单的应用程序
使用Spring Security的准备
配置/WEB-INF/web.xml 文件
创建 /WEB-INF/applicationContext-security.xml
定义哪些服务被保护
定义那些ZK事件被保护
ZUML页面
18. Portal 整合
配置
WEB-INF/portlet.xml
WEB-INF/web.xml
使用方法
zk_page zk_richlet参数和属性
事例
19. ZK之外
Logger
如何使用ZK配置日志等级
i3-log.conf的内容
i3-log.conf的位置
禁用所有日志
DSP
iDOM