event是用来抽象事件的,在这里我们将讨论怎么去操纵event,比如说listening,posting,forwarding
Event Listening
有两种方式可以监听事件:Event Hanler and Event Listener。
Listen by use of an Event Handler
我们可以在zk page中将handler指定为一个属性或者在scr中写一个component class
<button onClick="alert('hello world')"></button>
重要的内置变量:
self - 接收event的组件,在这个例子中就是接收onClick事件的button
event - 被接收的时间,在这个例子中就是MouseEvent的实例
它有优点和缺点:
Advantage:
1、改变代码无需重新编译和重新加载应用;
2、如果代码少的话是容易维护的
Disadvantage:
1、运行速度慢;
2、编译错误不能被提前发现;
3、在ui中混杂事务处理代码是难以维护的
Declare an Event Handler in java
我们可以用java代码的方式来实现:
public class MyButton extends Button{
public void onClick(){
Messagebox.show("hello "+event.getName());
}
}
用java代码的方式实现event handler,官方建议是在组件开发时用,因为对开发人员来说,它是隐含的。
Listen by Use of an Event Listener
event listener实现自EventListener
public class MyListener implements EventListener{
@Override
public void onEvent(Event event) throws Exception {
Messagebox.show("hello world");
}
}
btn.addEventListener("onClick",new MyListener());
但是如果组件很多的时候,这样人工一个一个添加Listener是很麻烦的,因此zk提供了一种可以自动根据id连线的方式来监听:
public class MyComposer extends GenericForwardComposer{
private static final long serialVersionUID = -6441175297617827574L;
public void onClick$hi(){
try {
Messagebox.show("hello");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
public void onClick$bye(){
try {
Messagebox.show("goog bye");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
public void onOK(){
try {
Messagebox.show("ok pressed");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
然后再页面中,我们可以为window添加apply属性
<?page title="new page title" contentType="text/html;charset=UTF-8"?>
<zk>
<window title="new page title" border="normal" apply="com.jing.zk.MyComposer">
<textbox/>
<button id="hi" label="hi"></button>
<button id="bye" label="bye"></button>
</window>
</zk>
如果要讲Listener延迟,需要同时实现EventListener和Deferrable,当将一个listener延迟后,就算这个监听器已经在页面中注册,但是也不会马上返回服务器,只有当另一个non-deferrable的listener到来时,才回跟随它一起返回,而且是有顺序的。
当我们为page添加listener的情况下,都是延迟的,无论是否实现了deferrable
分享到:
相关推荐
由于提供的文件信息中,有关股票知识的部分占据了大部分内容,而与标题“ZK框架:Ajax开发实战”相关的内容并未在文件中明确出现,因此无法直接从给定的文件信息中生成与ZK框架和Ajax开发相关的内容。不过,我将基于...
ZK框架是一款用于Web开发的开源富客户端框架,它基于Java语言开发,并能够运行在服务器端。ZK框架允许开发者利用XUL(XML用户界面语言),通过简单的标记和脚本来创建复杂的Web界面。 首先,ZK框架的最新版本为...
ZK框架 中文技术文档ZK框架 中文技术文档ZK框架 中文技术文档ZK框架 中文技术文档ZK框架 中文技术文档ZK框架 中文技术文档ZK框架 中文技术文档ZK框架 中文技术文档ZK框架 中文技术文档ZK框架 中文技术文档ZK框架 ...
ZK框架是一个基于Java开发的轻量级Web应用框架,专为构建富客户端用户界面而设计。它将服务器端的业务逻辑与客户端的界面展示完美地融合在一起,提供了丰富的组件库,使得开发者能够轻松创建出交互性强、响应速度快...
ZK框架是一个基于Java的开源用户界面框架,专门用于构建富互联网应用程序(RIA)。该框架的核心特性是其基于Ajax的事件驱动引擎,允许开发者无需编写JavaScript代码就能实现动态和交互式的Web界面。ZK的主要优点在于...
ZK 是一个基于 Java 的轻量级Web框架,专门用于构建富客户端的Web应用程序。它提供了丰富的用户界面组件和事件处理机制,使得开发者能够轻松创建交互式的Web应用。本篇文章将深入探讨ZK框架的基本概念、开发环境的...
ZK框架的独特之处在于它结合了Ajax技术与桌面应用的交互体验,使开发者能够通过简单的代码实现复杂的用户界面。在本文中,我们将深入探讨ZK框架的核心特性、工作原理以及如何使用ZK进行Web应用开发。 **一、ZK框架...
#### 事件处理(Event Handling) ##### 事件监听(Event Listening) 在ZK框架中,事件监听是处理用户交互的核心。当用户与界面上的组件进行交互时(如点击按钮),会触发相应的事件。开发者可以通过注册事件监听器来...
zk框架的入门介绍,刚开始学习和接触zk框架的伙伴可以看看,不错的资料
现在zk是一个刚刚兴起的框架,网络上关于zk框架的资源还是很少的,我学习这个碰到了不少的问题,不过还是慢慢的解决了,上传我的运用zk框架基于java的一个web学生管理系统开发给大家参考,希望能对学习zk框架的朋友...
ZK框架 : Ajax开发实战1.rar
ZK(Zookeeper)框架是Apache的一个开源项目,主要用于分布式协调服务。它提供了一种可靠的、分布式的命名服务、配置管理、同步服务以及分组服务,广泛应用于大数据、云计算等领域。在实际开发中,有时我们需要将ZK...
ZK,全称为ZooKeeper,是由Apache软件基金会开发的一个分布式协调服务框架,它为分布式应用提供一致性服务,包括命名服务、配置管理、集群管理、分布式锁等。本资料包是针对ZK框架的学习资源,旨在帮助用户深入理解...
ZK框架官方API,目前国内很少有这方面的资料!
1. **组件库**:这是zk框架的核心之一,提供了丰富的预定义组件供开发者使用。这些组件覆盖了大多数常见的用户界面需求,从基本的按钮到复杂的表格和树形视图。 2. **Ajax支持**:zk的一个显著特点是其对Ajax的强大...
zk框架中的一些注解使用,项目中的需要用到的,各位可以了解一下,希望可以帮到大家!今后可以多交流,相互学习,共同进步。
ZK框架:Ajax开发实战.pdf ZK框架:Ajax开发实战.pdf
ZK框架是一款基于Java开发的开源用户界面框架,专门用于构建富互联网应用程序(RIA),尤其在J2EE环境中表现出色。它提供了一种简洁而高效的方式,使得开发者能够轻松地创建出具有高度交互性和响应性的Web应用,同时...
### zk框架开发中遇到的错误整理 #### 一、`TripleRuntimeException:nameisnotexisted:CStaff` **问题描述**: 在使用zk框架开发过程中遇到了一个名为`TripleRuntimeException:nameisnotexisted:CStaff`的异常。这...