BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

ZK Web框架6.0发布:新型数据绑定系统

| 作者 Kostis Kapelonis 关注 0 他的粉丝 ,译者 吴宇 关注 0 他的粉丝 发布于 2012年4月1日. 估计阅读时间: 5 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

Potix,这家提供ZK框架的公司最近发布了该基于Java的Ajax Web应用框架的6.0版。ZK是一款开源Java框架,使得开发者能够基于Ajax(无需编写任何JavaScript)来开发丰富的互联网应用。除了提供样例演示外,公司官方网站还罗列了几个现实生活中使用ZK的应用。

Google Web Toolkit采用的方式类似,ZK抽象了所有JavaScript和HTML,开发者只需关注运行在服务器端的面向业务逻辑的Java代码即可。这可以通过实现一个在服务器端的事件引擎和一个在客户端(Web浏览器)的JavaScript来达到。按这种方式,服务器端数据和客户端呈现之间的同步完全是自动的。开发者可以用自己熟悉的桌面框架(比如Swing)事件模型来编写一个完整的应用。

这次最新版本中的改变包括:

  • 遵循MVVM模式的新型“ZK绑定”系统
  • 运行在服务器端的jQuery/CSS 3风格选择器
  • 从jQuery 1.4.x升级到1.6.x(性能提高)
  • 高级模板
  • 面向Servlet 3异步处理的ZK Comet支持
  • 新组件(而弃用老组件)
  • 升级到Java 5
  • 新的默认主题选择

其中最重要的一个改变是新型数据绑定系统。ZK遵循Model View ViewModel模式(MVVM),这里的视图模型(ViewModel)层负责将模型(Model)中的值转化为视图(View),并且当视图被用户改变时,将其更新回模型。图形化用户界面由标记语言声明,该语言完全和模型(Model)中包含的数据分离。在ZK框架中被使用的标记称作ZK用户界面标记语言(ZUML),而真正的业务逻辑驻留在Java代码中。这里的一大原则就是ZUML能够被非编程人员编辑,这样就可以并行进行用户界面(UI)和Java代码的开发,从而提高效率。该模式并非ZK专属,其它大家熟知的例子包括Mozilla的XUL和Miscrosoft的XAML。ZK也支持通过ZK Richlets,使用纯Java来创建用户图形界面(GUIs)。

“ZK绑定”支持EL2.2表达式,使得可配置数据能够在ZUML图形化组件和服务器端Java对象之间传输(单向或双向)。直接支持在CDISeamSpring beans上的绑定。由于升级到Java 5,允许在服务器端代码中使用泛型和类型安全。需要说明的是,对那些需要ZK 5的老式绑定系统,或目前还不想升级的用户来说,老版本仍然提供支持。

另一个要介绍的新特性是提供了面向服务器端Java代码的jQuery风格选择器。该功能给开发者提供了一种简洁又方便的方式来访问服务器端组件。下面是从ZK文档中直接拿来的一个样例:

Window win;
 
// returns all components with id "myId" under the Window win. (including itself)
Selectors.find(win, "#myId");
 
// returns all components whose .getLabel() value is "zk" (if applicable)
Selectors.find(page, "[label='zk']");
 
// you can assemble the criteria:
// returns all labels, whose parent is a window of id "win", and whose value is "zk"
Selectors.find(page, "window#win > label[value='zk']");

最后,ZK 6.0利用了Servlet 3.0规范中对异步请求的支持。这意味着可以使用每个请求对应一个线程(Thread-Per-Request)的实现方式,而非每个连接对应一个线程(Thread-Per-Connection)。由于线程在不需要时可以更频繁的循环使用,性能就会得到提高。

ZK 6.0的下载包含多个版本,这由其许可决定。更多的信息可以通过参考文档Javadocs来了解。源代码在GitHub上可以得到。升级指导文档也已经可用。

查看英文原文:ZK Web Framework 6.0 Released: New Data Binding System

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

兼容前端各种浏览器吗 by henyo ma

可以兼容前端各种浏览器吗?自动生成前端的js?效率怎么样?生成的页面会不会很大?

Re: 兼容前端各种浏览器吗 by xianbin su

以去年下载玩了一下,浏览器兼容性还是很不错的,另外,性能方面还过得去,至少比GWT好多了,无论是快速开发还是提供的各种扩展性功能。

Re: 兼容前端各种浏览器吗 by xianbin su

补充一下,生成的页面性能方面,GWT比较出色,这里所指的是开发过程中,不会类似GWT一样要编译出一堆东西,整体功能上比GWT强多了。

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

3 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT