richlet是一段java小程序,它可以形成UI,也可以为用户的请求服务。
当用户的url请求到来时,zk会根据web.xml中的url-pattern来检查这是要请求一个zul或者是richlet。当用户的请求是一个zul的时候,就和我们前面所讲的一样。如果用户的请求是一个richlet,那么zk loader 会将处理任务交给richlet,这时,ui的形成就全部由richlet决定。
到底是用richlet还是zuml page来形成用户界面完全取决于你的个人喜好,我们不必考虑是用zuml page的性能问题,因为zuml page的形成过程是经过优化的。
用richlet形成用户界面有两个步骤,一是在你的java class中实现richlet,二是将url映射到你已经写好的richlet上。
Implements a Richlet as Java Class
一个richlet必须实现Richlet接口,但是我们通常不去实现这个接口,我们会用更加快捷方便的方式,那就是去继承这个接口的一个实现类GenericRichlet,当我们继承这个类后,我们所要做的仅仅是去重写service方法
package com.jing.zk;
import org.zkoss.zk.ui.GenericRichlet;
import org.zkoss.zk.ui.Page;
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.event.EventListener;
import org.zkoss.zk.ui.event.Events;
import org.zkoss.zul.*;
public class TestRichlet extends GenericRichlet{
@Override
public void service(Page page) throws Exception {
page.setTitle("Richlet Test");
final Window w = new Window("Richlet Test", "normal", false);
new Label("hello world").setParent(w);
final Label l = new Label();
l.setParent(w);
final Button btn = new Button("Change");
btn.addEventListener(Events.ON_CLICK, new EventListener() {
int count;
@Override
public void onEvent(Event event) throws Exception {
l.setValue(""+ ++count);
}
});
btn.setParent(w);
w.setPage(page);
}
}
值得注意的是,richlet必须是线程安全的,因为如果我们将一个component共享的话,那么献一次请求到来的时候,这个component已经实例化过了,再将它指定给另一个page将会抛出异常。
Map a URL to a Richlet
将url映射到richlet上同样也需要经过两个步骤:一是在web.xml中打开richlet支持的开关;二是在zk.xml中关联映射
在web.xml中你可以添加下面的代码,你也可以写成/do/*,但是千万不能写成*.do,因为这会被当成ZUML page
<servlet-mapping>
<servlet-name>zkLoader</servlet-name>
<url-pattern>/zk/*</url-pattern>
</servlet-mapping>
在zk.xml中我们添加下面的代码
<richlet>
<richlet-name>Test</richlet-name>
<richlet-class>com.jing.zk.TestRichlet</richlet-class>
</richlet>
<richlet-mapping>
<richlet-name>Test</richlet-name>
<url-pattern>/test</url-pattern>
</richlet-mapping>
你可以在url-pattern中添加任意的路径,特别的,当我们将路径写成/*的时候,当访问localhost:8080/your project name/zk/时,会触发我们写的richlet
分享到:
相关推荐
由于提供的文件信息中,有关股票知识的部分占据了大部分内容,而与标题“ZK框架:Ajax开发实战”相关的内容并未在文件中明确出现,因此无法直接从给定的文件信息中生成与ZK框架和Ajax开发相关的内容。不过,我将基于...
ZK框架是一款用于Web开发的开源富客户端框架,它基于Java语言开发,并能够运行在服务器端。ZK框架允许开发者利用XUL(XML用户界面语言),通过简单的标记和脚本来创建复杂的Web界面。 首先,ZK框架的最新版本为...
ZK框架 中文技术文档ZK框架 中文技术文档ZK框架 中文技术文档ZK框架 中文技术文档ZK框架 中文技术文档ZK框架 中文技术文档ZK框架 中文技术文档ZK框架 中文技术文档ZK框架 中文技术文档ZK框架 中文技术文档ZK框架 ...
在ZK中,事件处理是其核心特性之一。当用户与UI组件交互时,事件会被触发并由服务器端处理。这种事件驱动模型使得开发者能够轻松响应用户的行为,而无需编写复杂的JavaScript代码。此外,ZK的服务器推送技术(如AJP...
ZK的事件模型是其独特之处。组件可以直接绑定事件处理器,无需借助JavaScript。这意味着所有交互逻辑都可以在服务器端处理,提高了安全性。组件的事件和控制器的概念是实现这一功能的关键,控制器负责处理组件发送的...
ZK框架的独特之处在于它结合了Ajax技术与桌面应用的交互体验,使开发者能够通过简单的代码实现复杂的用户界面。在本文中,我们将深入探讨ZK框架的核心特性、工作原理以及如何使用ZK进行Web应用开发。 **一、ZK框架...
ZK 是一个基于 Java 的轻量级Web框架,专门用于构建富客户端的Web应用程序。它提供了丰富的用户界面组件和事件处理机制,使得开发者能够轻松创建交互式的Web应用。本篇文章将深入探讨ZK框架的基本概念、开发环境的...
现在zk是一个刚刚兴起的框架,网络上关于zk框架的资源还是很少的,我学习这个碰到了不少的问题,不过还是慢慢的解决了,上传我的运用zk框架基于java的一个web学生管理系统开发给大家参考,希望能对学习zk框架的朋友...
zk框架的入门介绍,刚开始学习和接触zk框架的伙伴可以看看,不错的资料
ZK框架 : Ajax开发实战1.rar
ZK,全称为ZooKeeper,是由Apache软件基金会开发的一个分布式协调服务框架,它为分布式应用提供一致性服务,包括命名服务、配置管理、集群管理、分布式锁等。本资料包是针对ZK框架的学习资源,旨在帮助用户深入理解...
ZK(Zookeeper)框架是Apache的一个开源项目,主要用于分布式协调服务。它提供了一种可靠的、分布式的命名服务、配置管理、同步服务以及分组服务,广泛应用于大数据、云计算等领域。在实际开发中,有时我们需要将ZK...
zk框架中的一些注解使用,项目中的需要用到的,各位可以了解一下,希望可以帮到大家!今后可以多交流,相互学习,共同进步。
ZK框架官方API,目前国内很少有这方面的资料!
ZK框架:Ajax开发实战.pdf ZK框架:Ajax开发实战.pdf
### ZK框架的一些事件触发介绍 #### 概述 ZK是一款基于Java的企业级Web应用程序开发框架,它提供了一种简单、高效的方式来构建用户界面。本文档主要关注于ZK框架中的事件处理机制,包括事件监听、事件触发、事件...
ZK框架是一款基于Java开发的开源用户界面框架,专门用于构建富互联网应用程序(RIA),尤其在J2EE环境中表现出色。它提供了一种简洁而高效的方式,使得开发者能够轻松地创建出具有高度交互性和响应性的Web应用,同时...
### zk框架开发中遇到的错误整理 #### 一、`TripleRuntimeException:nameisnotexisted:CStaff` **问题描述**: 在使用zk框架开发过程中遇到了一个名为`TripleRuntimeException:nameisnotexisted:CStaff`的异常。这...