- 浏览: 1152862 次
- 性别:
- 来自: 火星郊区
博客专栏
-
OSGi
浏览量:0
文章分类
- 全部博客 (695)
- 项目管理 (48)
- OSGi (122)
- java (79)
- Vaadin (5)
- RAP (47)
- mysql (40)
- Maven (22)
- SVN (8)
- 孔雀鱼 (10)
- hibernate (9)
- spring (10)
- css (3)
- 年审 (6)
- ant (1)
- jdbc (3)
- FusionCharts (2)
- struts (4)
- 决策分析 (2)
- 生活 (10)
- 架构设计 (5)
- 破解 (2)
- 狼文化 (4)
- JVM (14)
- J2EE (1)
- 应用服务器 (1)
- 我的链接 (5)
- 数学 (2)
- 报表 (1)
- 百科 (6)
- Flex (7)
- log4j (2)
- PHP (1)
- 系统 (2)
- Web前端 (7)
- linux (6)
- Office (1)
- 安全管理 (5)
- python (2)
- dom4j (1)
- 工作流 (3)
- 养生保健 (4)
- Eclipse (8)
- 监控开发 (1)
- 设计 (3)
- CAS (1)
- ZK (41)
- BluePrint (3)
- 工具 (1)
- SWT (7)
- google (2)
- NIO (1)
- 企业文化 (2)
- Windoes (0)
- RCP (7)
- JavaScript (10)
- UML (1)
- 产品经理 (2)
- Velocity (10)
- C (1)
- 单元测试 (1)
- 设计模式 (2)
- 系统分析师 (2)
- 架构 (4)
- 面试 (2)
- 代码走查 (1)
- MongoDB (1)
- 企业流程优化 (1)
- 模式 (1)
- EJB (1)
- Jetty (1)
- Git (13)
- IPV6 (1)
- JQuery (8)
- SSH (1)
- mybatis (10)
- SiteMesh (2)
- JSTL (1)
- veloctiy (1)
- Spring MVC (1)
- struts2 (3)
- Servlet (1)
- 权限管理 (1)
- Java Mina (1)
- java 系统信息 (6)
- OSGi 基础 (3)
- html (1)
- spring--security (6)
- HTML5 (1)
- java爬虫搜索 (1)
- mvc (3)
最新评论
-
Tom.X:
http://osgia.com/
将web容器置于OSGi框架下进行web应用的开发 -
chenyuguxing:
你好, 为什么我的bundle export到felix工程中 ...
在Apache Felix中运行bundle -
string2020:
<niceManifest>true</ni ...
Bundle Plugin for Maven -
jsonmong:
OSGI,是未来的主流,目前已相当成熟。应用OSGI比较好的, ...
基于OSGi的声明式服务 -
zyhui98:
貌似是翻译过来的,有很少人在linux上做开发吧
如何成为“10倍效率”开发者
一,所属命名空间不同
zul组件 xmls= http://www.zkoss.org/2005/zul
zhtml组件 xmlns:h=" http://www.w3.org/1999/xhtml "
native组件 xmlns:n=" http://www.zkoss.org/2005/zk/native "
二,组件类不同
zul组件 zul.jar下组件类
zhtml组件 zhtml.jar下组件类
native组件 全部是zk.jar下的类org.zkoss.zk.ui.HtmlNativeComponent
三,事件处理EventHandler
1,zhtml组件 可以触发事件处理函数onSetting
<h:input value="测试" type="button" forward="onSetting" xmlns:h=" http://www.w3.org/1999/xhtml"/ >
2, native组件不可以触发事件处理函数onSetting
<n:input value="测试" type="button" forward="onSetting" xmlns:n="native"/>
3,zul组件可以触发事件处理函数onSetting
<button label="测试" id="btnSubmit" forward="onSetting"></button>
四,受管状态
所谓受管状态,全由个人杜撰,即所在命名空间保存其组件信息,可通过命名空间查找删除组件
1)结论
1,zul组件 与 zhtml组件 是受所在命名空间管理的
2,native组件 不受所在命名空间管理
2)结论依据
zul组件、zhtml组件、native组件 有一个共同祖先 org.zkoss.zk.ui.AbstractComponent类
在zk5.06版中的AbstractComponent类的setId(543行)方法中有一行代码
addToIdSpaces(this);(589行),意思是将当前组件添加到id命名空间中,
例如添加到window,page中, 但在addToIdSpaces方法中有一段有趣的代码
- /** Adds to the ID spaces, if any, when ID is changed.
- * Caller has to make sure the uniqueness (and not auto id).
- */
- private static void addToIdSpaces(final Component comp) {
- final String compId = comp.getId();
- if (comp instanceof NonFellow || isAutoId(compId))
- return; //nothing to do
- if (comp instanceof IdSpace)
- ((AbstractComponent)comp).bindToIdSpace(comp);
- addFellow(comp, getSpaceOwnerOfParent(comp));
- }
/** Adds to the ID spaces, if any, when ID is changed. * Caller has to make sure the uniqueness (and not auto id). */ private static void addToIdSpaces(final Component comp) { final String compId = comp.getId(); if (comp instanceof NonFellow || isAutoId(compId)) return; //nothing to do if (comp instanceof IdSpace) ((AbstractComponent)comp).bindToIdSpace(comp); addFellow(comp, getSpaceOwnerOfParent(comp)); }
这段有趣的代码
if (comp instanceof NonFellow || isAutoId(compId)) return; //nothing to do
意思是排除符合NonFellow接口的组件,排除由zk自动生成id的组件
然后我查看了zul组件,zhtml组件,native组件,发现native组件HtmlNativeComponent实现了该接口
如下:
- public class HtmlNativeComponent extends AbstractComponent implements DynamicTag, Native {
- //................
- }
- public interface Native extends NonFellow {
- //................
- }
public class HtmlNativeComponent extends AbstractComponent implements DynamicTag, Native { //................ } public interface Native extends NonFellow { //................ }
五,生成静态内容
zul页面代码
- <?xml version="1.0" encoding="utf-8"?>
- <window
- xmlns:w="client" xmlns:n="native" xmlns="http://www.zkoss.org/2005/zul"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.zkoss.org/2005/zul http://www.zkoss.org/2005/zul/zul.xsd"
- apply="IndexController">
- <h:input value="测试" type="button" forward="onSetting" xmlns:h="http://www.w3.org/1999/xhtml"/>
- <n:input value="测试" type="button" forward="onSetting" xmlns:n="native"/>
- <button mold="os" label="测试" forward="onSetting"></button>
- </window>
<?xml version="1.0" encoding="utf-8"?> <window xmlns:w="client" xmlns:n="native" xmlns="http://www.zkoss.org/2005/zul" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.zkoss.org/2005/zul http://www.zkoss.org/2005/zul/zul.xsd" apply="IndexController"> <h:input value="测试" type="button" forward="onSetting" xmlns:h="http://www.w3.org/1999/xhtml"/> <n:input value="测试" type="button" forward="onSetting" xmlns:n="native"/> <button mold="os" label="测试" forward="onSetting"></button> </window>
生成静态内容,与上面代码顺序一样
['zhtml.Widget','oW6Q1',{$onClick:true,prolog:'<input id="oW6Q1" value="测试" type="button"/>'},[]],
['zk.Native','oW6Q2',{prolog:'\n\t<input value="测试" type="button"/>'},[]],
['zul.wgt.Button','oW6Q3',{$onClick:true,prolog:'\n\t',label:'测试'},[],'os']]]]]);
从中我们可以看出:
1,从上面json格式的代码可以看出zhtml与native组件仅仅做了简单的处理,直接输出到prolog属性上
2,zul组件与zhtml组件都监听了onClick事件,$onClick:true,从而触发服务器端controller类的事件处理程序
实践:
由上可以知道,native组件无法getFellow得到,所以如果你这么做了,一定获得null,
但如果想获得native组件,有一个方法:
获得native组件附近的受管zhtml组件或zul组件然后通过这些组件的方法获得
1,如果父组件是native组件,getParent方法
2,如果子组件第一个组件是native组件 getFirstChild方法
,
3,如果子组件的第一个组件是native组件getLastChild方法,
4,如果相邻的上一个组件是native组件,getNextSibling方法
5,如果相邻的上一个组件是native组件,getPreviousSibling方法
6,当然你也可以使用链式方法获取native组件
发表评论
-
ZK PPT
2012-02-27 17:28 1206附件中为ZK系列的PPT -
zk+spring+hibernate延迟加载的解决办法
2012-02-24 14:22 1272由于Zk 的AU request,lazy load现在没 ... -
【zk开发】zk注解的秘密
2012-02-24 14:23 1596The DataBinder that reads ZUML ... -
【zk开发】zkstudio安装及使用视屏
2012-02-26 12:04 1252安装视屏 http://docs.zkoss.org/w ... -
zk主题生成器
2012-02-26 12:04 1621生成器在附件内,兼容zk3.x 与zk5.x,zktheme ... -
zk服务器端获取鼠标点击位置
2012-02-26 12:04 1397index.zul Xml代码 ... -
zk Fiddle-zk在线测试保存代码分享平台
2012-02-23 08:20 1473http://zkfiddle.org/ 是zk项目组之一 ... -
zksample2-一个复杂应用的zk示例
2012-02-23 08:19 1484Zks ample2 is a demo applica ... -
zk5.0.8发布
2012-02-23 08:18 957该版本是一个维护版本,主要于bug修复及引入几个新特性 ... -
zk数据绑定
2012-02-23 08:17 1801简介 : 关于数据绑 ... -
zk EE/PE/CE的区别
2012-02-18 09:32 3109自从zk5.0以后,zk拆分为 ... -
ZK 5.0.8 新特性
2012-02-18 09:32 18948月16日,zk官网:zk5.0.8将要发布 zk5. ... -
zk client与server code结合提高长操作的响应性
2012-02-18 09:32 1434一,关于长操作与响应性 zk client与serve ... -
zk tooltiptext中换行
2012-02-17 11:37 1540Xml代码 <window ti ... -
zk下载文件中文乱码解决方案
2012-02-17 11:37 3675本文来自http://sun4love.iteye.com/b ... -
【zk视频】如何了解一个组件默认支持服务器端事件
2012-02-17 11:37 1311如何了解一个组件默认支持服务器端事件? 知识点:在z ... -
【zk视频】如何查看zk源码,了解zk原理
2012-02-17 11:37 1654当org.zkoss.zul.Window关闭时,zk是如 ... -
ZK 5.0.7发布,及新特性
2012-02-15 09:10 1154ZK 是一套以 AJAX/XUL/Java 为基础的网页应用 ... -
use【组件公共属性】
2012-02-15 09:09 1087语法 apply="a-class- ... -
zk异步请求异常,自定义错误页面的bug
2012-02-15 09:09 1130zk版本5.0.6 现在遇到一个问题,觉得是bug, ...
相关推荐
在本安装文件中,你将找到所有必要的组件来配置和使用ZUL Studio进行ZK应用的开发。 首先,我们来了解一下ZUL Studio的核心特性: 1. **可视化设计**:ZUL Studio提供了一个直观的拖放式界面,允许开发者直接在...
在本文中,我们将深入探讨ZK组件开发指南的相关知识点,主要关注展现层的构建、DSP文件的使用以及组件渲染器的工作原理。 首先,展现层是客户端组件的可视化部分,它可以是HTML、JavaScript、MIDLet、XML节点或...
整理的比较全面的zul页面注解和java注解,初学zk框架的朋友可以看看,了解注解的功能,便于框架的学习。
- 创建第一个ZK项目"Hello World"时,通常会通过Eclipse创建一个新的ZK Web项目,然后编写包含简单组件(如Label)的ZUL页面,最后运行并查看结果。 - 分析配置文件,例如web.xml,了解ZK应用如何与Servlet容器...
- **实现组件**:实现ZK组件的核心是继承自`zul.wgt.AbstractComponent`类或其子类,并覆盖必要的方法以定义组件的行为。 - **实现组件属性**:组件可以通过定义属性来提供灵活性。这些属性可以在服务器端设置,并...
- **定义组件类**:继承自 `zul.wgt.UICustom` 类或其他 ZK 组件基类,实现必要的方法。 - **实现属性**:根据需求添加组件的属性,如 `String` 类型的名称等。 - **编写客户端代码**:使用 JavaScript 实现组件...
根据提供的文件信息,我们可以深入探讨两个主要的知识点:ZUI 动态生成树的代码以及 ZUL 对 ExtJS 的集成。 ### ZUI 动态生成树的代码 #### 概述 ZK 是一个用于构建企业级 Web 应用的强大框架,而 ZUI 是其前端...
它通过一种称为ZUL(ZK User Interface Language)的标记语言,结合服务器端的组件模型,实现了前后端的分离,简化了开发流程。 1.2 ZK特点 - **事件驱动**:ZK在服务器端处理用户交互,减轻了客户端的压力。 - **...
4. **ZUL语言**:ZK提供了一种标记语言ZUL(ZK User Interface Language),用于定义用户界面布局和组件。ZUL文件类似于XML,用于描述组件结构和行为。 5. **Ajax技术**:ZK利用Ajax实现页面的部分刷新,提升用户...
在ZK中,树组件是通过XML(ZUL文件)和Java类(如Composer或Listener)共同定义的。ZUL文件负责布局和组件定义,而Java类则处理业务逻辑和事件处理。 描述中提到,为了在MyEclipse中重现ZK的主界面,你需要创建一个...
在Eclipse中创建一个新的ZUL文件(ZK的用户界面文件),并编写简单的Hello World组件,例如: ```xml , ZK!" /> ``` 运行这个项目,你将在浏览器中看到"Hello, ZK!"的显示。 2.4 **例子中的配置分析** ZUL文件...
5. **ZUL和SML页面**:ZK使用ZUL(ZK User Interface Language)和SML(Screen Markup Language)作为其标记语言。通过分析代码,你可以理解这两种语言的语法和用法,如何定义布局和组件属性。 6. **Composer和...
4. **ZUL文件**:ZK使用ZUL(ZK User Interface Language)作为界面描述语言,类似于XML,用于定义组件结构和行为。ZUL文件中可以嵌入EL表达式,方便地处理数据绑定和事件处理。 5. **Composer**:Composer是ZK中的...
- **创建ZUL文件**:使用ZUL文件定义用户界面,ZUL文件包含了各种组件以及它们的属性和事件处理。 - **编写Java控制器**:创建Java类作为控制器,处理ZUL文件中的事件,实现业务逻辑。 - **配置和部署**:配置ZK...
1. **Window**:用于创建独立的弹出窗口,可包含多个ZUL组件。 2. **Grid**:用于展示二维数据,类似表格,支持排序、分页等功能。 3. **Listbox**:展示列表数据,支持多选和单选。 4. **Tree**:用于展现层级结构...
《ZK开发手册》是专为Java开发者设计的一份详尽指南,主要涵盖了ZK框架的各个方面,旨在帮助用户深入理解和高效使用这个强大的组件。ZK是一个基于组件的、事件驱动的用户界面(UI)框架,它使得在Web环境中创建交互...
4. **ZUL脚本语言**:ZK 自定义的 ZUML (ZK User Interface Markup Language) 是一种声明式语言,用于描述用户界面布局和组件属性,简化了界面设计。 5. **数据绑定**:ZK 支持双向数据绑定,可以轻松地将组件与...
总之,ZK 5是一个强大且易用的Web开发框架,它的事件驱动模型、丰富的组件库、灵活的布局管理以及ZUL脚本语言,都极大地提升了开发效率和应用质量。对于希望进入或提升在RIA领域的开发者来说,理解和掌握ZK 5的知识...