标题：ZK框架:Ajax开发实战
作者简介
HENRICHEN是ZKAjaX框架的创建者之一。他拥有20年以上在不同领域用不同语言从事开发的经验。他从1995年Java语言的最初版本发布时起就开始编写Java程序，后来转向为世界第一个最强的基于ARM的网络计算机开发了JavaOS和HotJava，这使他赢得了1996年Comdex大会颁发的“最佳系统”奖。他同时也是瘦客户端编程、嵌入式系统和AjaxWeb开发方面的专家。
ROBBIECHENG是ZK团队中的一名工程师。尽管他大学主修的专业是英美文学，但他也获得了信息系统管理方面的MBA学位。他一直担任ZK框架使用的指导员，同时也是ZK注册的开发员，并在ZKWeb网站上发表过许多文章。除了编程之外，他的业余爱好是看电影，他最喜欢的电影是《廊桥遗梦》（《TheBridgesofMadisonCounty》）。
编辑推荐
Apress的firstPress系列图书是您学习前沿技术的最佳途径。所有图书均由技术专家执笔，内容简洁、重点突出，帮助您节省学习新技术的时间和精力。如果没有这些书的帮助，您需要通过大量钻研，或者频繁参加学术会议才能获得相应的知识——只要您抽得出时间。书中涉及的概念和技术将使您随时站在技术曲线的最前沿。firstPress系列图书关注前沿技术，虽然有些技术本身还不成熟，但并不代表成书质量会受影响。我们还提供电子书和纸质图书供您选择。
ZKTM框架——Ajax开发实战
亲爱的读者：
《ZK框架——Ajax开发实战》主要介绍如何让Ajax编程变得像开发桌面应用一样简单，像创建HTML页面一样容易，这也是ZKTM框架的核心价值所在。
编写富AjaxWeb应用是非常复杂的。在浏览器端，您可以使用HTMLDOM、CSS和JavaScriptTM语言编写用户接口：在服务端，您可以用另一种语言（比如JavaTM）编写业务逻辑和数据访问代码，这样，您必须对浏览器和服务端之间的消息进行异步HTTP处理，最后，您还要应付浏览器的不兼容问题和、JavaScript错误。
《ZK框架——Ajax开发实战》将为您介绍如何使用ZK框架轻松地开发Ajax应用。您不需要在浏览器端编写用户接口，而且，您可以在服务端使用.ZK所提供的超过160个的.Java组件来构建应用，有关Ajax编程的复杂架构技术都由ZK在后台自动进行处理。
在《ZK框架——Ajax开发实战》中，我们告诉您如何安装并运行ZK程序，以及ZK如何完成那些后台的处理任务，同时对重要的ZK组件进行解释，然后我们一起创建一个真实的Web应用。您将学到如何设计应用程序的页面、如何访问数据库，以及如何编写控制端代码来协调ZK表现层和数据访问层。
我们希望《ZK框架——Ajax开发实战》可以帮助您摆脱旧的、艰苦的、浪费时间的AjaxWeb应用的开发方式。阅读它，看看ZK如何让您的生活变得容易，同时也让您的客户高兴。
您诚挚的
HenriChen和RobbieCheng
目录
关于作者
关于技术评审
介绍
第一部分了解ZKAjax框架
第1章什么是ZKAjax框架
1.1ZKAjax框架
1.1.1Ajax：后台处理技术
1.1.2表现层
1.1.3以服务端为中心的事件驱动框架
1.1.4基于组件的GUI工具箱
1.2本章小结
第2章开始ZK之旅
2.1安装Java运行时环境
2.2安装Javaservlet容器
2.2.1使用Installer包
2.2.2使用ZIP文件
2.3部署和测试zkdemo-all.war
2.4相关的类库
2.5配置web.xml
2.6配置zk.xml
2.7本章小结
第3章构建你的第一个ZK应用
3.1第一个ZK应用：HelloWorld
3.2第一个ZK组件：窗体(Window)组件
3.3将Ajax注入到你的ZK应用中
3.4本章小结
第4章介绍通用ZK组件
4.1组件，页面和桌面
4.2组件的生命周期
4.2.1ZUML页面的生命周期
页面初始化阶段
组件创建阶段
事件处理阶段
回填阶段
4.2.2更新页面
请求处理阶段
事件处理阶段
回填阶段
4.3组件垃圾回收
4.4使用组件的属性
4.4.1组件的id属性
4.4.2组件的if和unless属性
4.4.3组件的forEach属性
4.4.4组件的use属性
4.4.51D空间(IDSpaces)
获取ID空间范围内的成员组件
获取ID空间范围外的组件
4.4.6获取另一个页面中的组件
4.4.7使用zscript和EL表达式
zscrlpt
EL表达式
4.5事件
4.6ZUML和XML命名空间
4.7创建真实的模式对话框(modaldialog)
4.7.1消息框
4.7.2文件上传
4.8实现宏组件(MacroComponent)
4.8.1集成大组件(MegaComponent)
Google地图
FCKeditor
Dojo
4.9本章小结
第二部分应用ZK框架
第5章搭建开发环境
5.1安装JavaSE(JDK)
5.2安装Tomcat
5.3安装EclipseIDESDK
5.3.1安装带WTP插件的Eclipse
5.3.2指定Eclipse的工作空间
5.3.3设置Tomcat和Elicpse一同工作
5.3.4定义一个服务器实例(Serverlnstance)
5.4在XML编辑器中设置.zul文件扩展名的关联
5.5配置ZK和Eclipse一同工作
5.5.1创建一个动态Web工程
5.5.2导入ZKJAR类库并设置Web配置
5.5.3创建一个新的index.zul文件
5.5.4运行你的第一个应用程序
5.6更多方便的工具
5.6.1导入ZK源代码到Eclipse中
5.6.2集成zul.xsd的XMLSchema文件
5.6.3使用zul.xsd这个XMLSchema文件创建一个页面..
5.6.4在Eclipse中找回丢失的xsd文件URL
5.7本章小结
第6章创建一个真实的Web应用
6.1介绍JavaPetStore2.0
6.2创建ZKPetShop应用
6.2.1安装ZKPetShop
6.3创建ZKPetShop的主页
6.3.1使用Dojo构建Fish-Eye列表
6.3.2监听onClick事件
6.3.3构建带超链接功能的图片
6.3.4将banner.zul包含到index.zul中
添加鹦鹉图标
添加标题
添加菜单条
6.4ZKPetShop应用的需求
6.4.1视图和控制器之间的互操作
6.5发布宠物信息
6.5.1创建seller.zul
声明seller.zul的控制器
创建一个用来提交宠物信息的表单
添加富文本编辑器
提供文件上传功能
创建一个表单用来提交卖家的联系方式信息
添加一个CAPTCHA
添加客户端验证约束
保存用户提交的信息到数据库中
6.6浏览宠物信息和照片
6.6.1更新catalog.zul文件
创建菜单条
创建宠物的大图
创建宠物的缩略图长廊
创建描述面板
6.7使用Google地图来搜索宠物的位置
6.7.1创建mapall.zul
创建一个表单用于提交用户的地址作为查询条件
使用Google地图来显示宠物的位置
在Google地图中显示结果
在gmap组件上显示宠物的位置
在grid中显示宠物的信息
重定向页面到catalog.zul
在地图上提示宠物的位置
自定义事件监听器
在弹出窗口中显示宠物的详细信息及缩略图
创建popup.zul
6.8本章小结
第7章将GUI和数据库进行链接
7.1准备数据库环境
7.1.1下载HSQL数据库
7.1.2创建ZKPetShop数据表
7.1.3JDBC和连接池
7.2让ZK和Hibernate一同工作
7.2.1使用Hibernate的先决条件
创建Java类
编辑Hibernate配置文件
映射对象资源
7.2.3使用映射文件的方式
7.2.4使用Java注释(Annotations)语言
7.2.5Hibernate的高级特征
工作单元
保持一个会话为开启状态
配置ZK来使用会话
7.3ZKPetShop中带注释语言的数据模型
表的注释语言
属性的注释语言
主键的注释语言
7.4实现ZKPetShop的门面类
7.4.1CatalogFacade类
7.4.2用Hibernate实现CatalogFacade类
SELECT语句
INSERT语句
7.4.3用户行为和后台处理机制
用户提交要出售的宠物信息
用户第一次访问catalog.zul
浏览某一种产品类型的宠物
使用Google地图来查找宠物的位置
7.5本章小结
第8章自动绑定数据
8.1去掉管道处理代码
8.2使用ZUMLAnnotations类
8.2.1格式化数据绑定注释语言
8.2.2使用ZKAnnotations类来进行数据绑定
load-when标签
save-when标签
8.3在ZKPetShop的GUl中添加数据绑定机制
8.3.1在ZKPetShop中使用数据绑定机制
声明数据模型的getter和setter方法
声明ZUML注释语言命名空间
定义数据绑定注释语言
指定调用数据绑定管理器的事件
8.3.2对数据的集合进行数据绑定
声明数据模型的getter和setter方法
定义数据绑定注释语言
8.3.3在listbox的model属性中指定数据集合
8.3.4使用_var标签定义一个ZK组件的模板
8.4本章小结
……