一,所属命名空间不同
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));
}
这段有趣的代码
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 {
//................
}
五,生成静态内容
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>
生成静态内容,与上面代码顺序一样
['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组件
分享到:
相关推荐
zul studio 安装文件 zul studio 安装文件 zul studio 安装文件 zul studio 安装文件
整理的比较全面的zul页面注解和java注解,初学zk框架的朋友可以看看,了解注解的功能,便于框架的学习。
ZK的实现完全用java实现,开发过程中不会有任何的JavaScript代码,但是通过将zul文件(ZK的源文件,类似于jsp文件)通过ZK引擎编译后查看页面源代码,结果还是可以看到,ZK实现的本质还是通过JavaScript+CSS来处理...
zui动态生成树的代码,zul对extjs的集成 他能已标签的形式 创建控件 也能在后台控制
安装命令CEK YUTUB 字首/ ! # $%?\~.菲图尔一种列出Fitur :check_mark_button: 制作者 :check_mark_button: 随机的 :check_mark_button: GABUTz :check_mark_button: 其他 :check_mark_button: 下载 :check_mark_...
安装命令 CEK YUTUB 字首 / ! # $%?\~. 菲图尔 一种 列出Fitur :check_mark_button: 制作者 :check_mark_button: 随机的 :check_mark_button: GABUTz :check_mark_button: 其他 ...API密钥
anmat_vademecum_scraper:网站的网络抓取工具:https:servicios.pami.org.arvademecumviewsconsultaPublicalistado.zul
ZK运行所需要的jar包,共10个: zcommon.jar、zcommons-el.jar、zhtml.jar、zk.jar、zkex.jar、zkmax.jar、zkplus.jar、zml.jar、zul.jar、zweb.jar
zkmax.jar zkjar zkflex.jar zui.jar 全部的 ZK运行所需要的jar包,共10个: zcommon.jar、zcommons-el.jar、zhtml.jar、zk.jar、zkex.jar、zkmax.jar、zkplus.jar、zml.jar、zul.jar、zweb.jar
NativeInfo Represents the compmonent infomation about the native components. NodeInfo Represents a node of the ZUML tree. PageDefinition A page definition. PageDefinitions Utilities to retrieve ...
REM是用于ZK应用程序开发的NetBeans模块。 它可用于创建ZK Web应用程序,ZUL和ZScripi文档。 它支持ZUL语法突出显示,自动缩进,代码折叠,代码超链接导航和代码完成。 它支持某些组件的调色板。
为了获得正确的功能,必须在窗口元素中使用apply属性定义控制器。(请参见屏幕截图示例)如果您要求完成apply属性中的代码,则建议控制器的类别;否则,请执行以下操作: 否则,建议控制器属性。...
祖鲁语的形态和工具 该存储库包含Zulu语言的有限状态源文件,用于构建形态分析器,校对工具和词典。数据和实现均已获得许可许可证的许可,该也已在LICENSE中进行了详细说明。在AUTHORS文件中命名的作者可以授予其他...
ZK Studio 1.0.2版本。该版本的主要新特性包括: 支持Eclipse 3.7 支持标记ZUL所注释的事件,在ZUL文件中,与所选部分相同的内容将被高亮显示。
zk框架中grid复杂表头的处理,包括实现横向滚动条、列... 建议下载官网开源demo 【zksandbox】,下载auxheader.zul替换项目中的/zksandbox/WebRoot/grid/auxheader.zul文件,可以查看效果。 新人学习,希望能帮到大家。
露西尔Giphy Hipchat机器人。 一旦运行,只要有人在Hipchat中输入“ / giphy”然后输入搜索词,Lucille就会返回与该词匹配的随机gif。笔记我目前不在这个项目上。 不过,我很乐意审核/接受请求请求。... ,代表Zul
1.将相应的文件放到合适的位置,其中tomcat-Jndi 是在tomcat的Context.xml中配置的。... 2.regist.zul是放置在zk项目的WebContent目录下面的。 3.java文件需要在src中建立相应的package并将其放到其中。
设计和设置:纵向数据来自社会经济Liewen zuLétzebuerg/欧洲联盟关于收入和生活条件的调查,该调查自2003年以来每年在卢森堡进行。 参与者:参与者包括727名卢森堡居民(58%的男性),2003年年龄在21至55岁之间,...
在veel documentatie中,zul je voorbeelden tegenkomen遇到了班级组成部分。 Daarom是通用代码,它是由kunnen lezen,Begrijpen,en omschrijven naar een functiecomponent met组成的。 在onderstaand上,...
ZK试算表ZK Spreadsheet是一个基于Web的开源可嵌入的在线电子表格,可在使用纯Java的浏览器中提供Excel的丰富功能。 借助可嵌入的Excel功能,开发人员可以轻松创建交互式,协作... e.g., ZK and ZUL:We use uppercase