《zk框架学习总结》.docx

上传人:h**** 文档编号:11201902 上传时间:2022-04-17 格式:DOCX 页数:92 大小:60.09KB
返回 下载 相关 举报
《zk框架学习总结》.docx_第1页
第1页 / 共92页
《zk框架学习总结》.docx_第2页
第2页 / 共92页
点击查看更多>>
资源描述

《《zk框架学习总结》.docx》由会员分享,可在线阅读,更多相关《《zk框架学习总结》.docx(92页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、zk框架学习总结zk框架学习总结word版 本文关键词:框架,学习,zk,wordzk框架学习总结word版 本文简介:ZK学习总结WebKey项目组2022年2月7日信息技术探讨所地址:河北工业高校北辰校区西教238室邮编:300401电话:(022)60435838E-Mail:前言根据项目安排,2022年1月29日至2022年3月5日为前期打算阶段,而春节之前主要对ZK进行深化学习。根据支配,组中各成员分别针zk框架学习总结word版 本文内容:ZK学习总结WebKey项目组2022年2月7日信息技术探讨所地址:河北工业高校北辰校区西教238室邮编:300401电话:(022)60435

2、838E-Mail:前言根据项目安排,2022年1月29日至2022年3月5日为前期打算阶段,而春节之前主要对ZK进行深化学习。根据支配,组中各成员分别针对ZK框架进行了学习,并记录了各自的学习过程、内容。现进行整理、总结,以便日后查阅或者供新成员学习之用。本文档的内容参考了ZK官方资源,但重要体现自己的理解及应用,要求编写成员每个例子代码都自己编写一遍,运行出来,加上自己体会总结各个组件用法。目前项目组只驾驭了每个组件的独立用法,对于须要几个组件共同工作完成的业务还没有很好的解决方法。另外,对于自定义组件还需特殊探讨。本手册只是为年前学习之总结,日后还会不断补充。自然其中可能会有错误或不足之

3、处,希望大家多多指教。详细分工:陈磊:前言、第一章、第四章11节、第五章1、2、3、4、6节刘建波:其次章、第四章12节、第五章5节冯新红:第三章王鸿淼:第四章1、2、3、4、5节方国建:第四章6、7、8、9、10节2022年2月7日WebKey项目组目录1了解ZK11.1理解ZK11.2ZK特点12ZK环境搭建32.1安装环境前,须要下载的东西:32.2安装过程32.3第一个用Eclipse创建的ZK项目:HelloWorld72.4例子中的配置分析123组件基础属性及事务153.1ID属性153.2IF和unless属性163.3use和apply属性163.4forEach属性203.5

4、事务处理204组件属性及重要函数284.1标签组件284.2按钮组件304.3日历组件314.4图像组件324.5窗口344.6布局组件394.7标签页444.8网格484.9菜单564.10列表框594.11树形组件645应用示例715.1功能简介715.2建立项目环境715.3登陆功能725.4权限推断735.5页面布局实现745.6权限管理实现755.7信息中心模块775.8示例配置代码791了解ZK1.1理解ZKZK官方网站及中有关于ZK的定义:“ZK是一个事务驱动(event-driven)的,基于组件(component-based)的,用以丰富网络程序中用户界面的框架。ZK包括一

5、个基于AJAX事务驱动的引擎(engine),一套丰富的XUL和XHTML,以及一种被称为ZUML(ZKUserInterfaceMarkupLanguage,ZK用户界面标记语言)的标记语言”。通过这么一段时间的接触,体验到ZK是C/S构架在WEB应用中的实现。写过C/S程序的同学应当能够理解C/S构架特点,如C+,.NET等语言的应用程序构架,以上语言在编写C/S构架程序的时候都是基于各个组件的应用,如窗口、按钮、列表等,用面对对象的语言来说,C/S程序是由各个可视化的对象组成的。最简洁的程序须要有以下几个步骤,第一,编写前台数据输入页面,然后编写后台处理数据的代码,最终编写数据处理的结果

6、的页面。以上的3个步骤在B/S框架中通常是独立分开的,而目前ZK框架则将三者能够绑定在一起,在一个ZK得页面中完成。像桌面程序一样,每个显示页面关联一个后台程序,页面中元素值及属性在后台程序中均能够随时得到,后台程序也能够限制页面元素。ZK是基于组件的,每个组件都有对应的HTML页面显示,又会对应一个JAVA对象。于是用户可以通过后台程序中对组件JAVA对象的处理来更新页面的HTML显示,而页面中元素的从属关系则体现在Java中的List类,每个组件都能够获得属于其中的元素列表(List)。1.2ZK特点通过这么一小段时间的ZK学习与应用,总结一点我认为特点与体会。1.组件多样,能够轻松完成一

7、般web程序很难完成的树、图表、页面局部动态变换、标签页、分页网格等功能,是实现富客户端应用的良好工具。2.开发模式简洁,只须要驾驭各个组件应用变可以轻松完成应用开发。但利用ZK开发还有些缺点的地方1.学习资料较少,只有官方网站中的例子,且例子均是局部功能,没有完整的WEB项目参考。这样就不能了解类包及页面如何安排等相关学问,如目前比较缺少在ZK中通用的对数据库进行增删改查的例子,打开2个window间数据传递等功能。2.感觉网格不是很好用,网格中的一行可以显示一条数据,但如何通过一行干脆获得绑定的数据?还是事务处理部分,事务处理是一个组件的特定函数,即一个类的函数,而函数中处理数据常常须要其

8、他组件的数据,如何获得其他组件数据?唯一的方法好像是事务监听类为组件的内部类。3.版本问题,目前ZK最新式5.0,其中官网中的DEMO均是此版本的,而其他的DEMO及Eclipse的插件均是3.6版本的ZK,导致从例子中学习的一些程序代码在其他环境中运行出错。4.编译源码问题,由于功能须要,须要对项目源代码进行重新编译,但ZK的编译须要在Linux或模拟Linux环境下运行,不是很便利,目前还没驾驭。2ZK环境搭建2.1安装环境前,须要下载的东西:作为一个基于java的webframework,再运用ZK之前,须要胜利安装JDK和tomcat5.5或者更高的版本,所以要提前下载的东西为:下载J

9、DK(JavaSE)安装包;下载Tomcat安装包;下载EclipseIDE软件开发工具安装包,我们项目组目前Eclipse环境为3.4;下载ZKLibrary;下载ZKStudio对于ZKLibrary可以再)中下载到本地机器。安装之后须要配置环境变量。2.2.2安装Servlet容器ApacheTomcat是当前广为流行的Servlet容器之一,安装简洁,运用便利,可以运用官方网站供应的两种安装方法。第一种运用Installer包安装,其次种是快速安装方法,是Tomcat供应的一个.ZIP文件。其次种详细操作过程是:首先,可已访问官方网站下载.zip文件;其次,将文件解压到本地机器;然后装

10、tomcat,装完后启动tomcat测试是否可以正常运行,以便查看环境变量测试的是否正确(默认端口是8080)。在地址栏干脆键入http:/localhost:8080/或者输入http:/127.0.0.1:8080。2.2.3安装Eclipse可以到www.eclipse.org下载eclipse,可以选择:Downloadnow下载完成后,只须要将下载的压缩文件eclipse-SDK-3.4-in32.zip解压到指定位置,例如D:/Eclipse即可完成安装。登记来就可以。安装后,会弹出一个画面选择工作空间,自己指定一个就可以。2.2.4安装插件通过自己在Eclipse下安装ZK插件的

11、学习体会,总结了在Eclipse下安装插件主要有三种方式,我认为第三种方式比较好(举荐),详细的安装过程如下:第一种方法:主要借助于Eclipse的向导来安装插件。通过Help/SoftwareUpdates/FindandInstall,在弹出的菜单中选择“Searchfornewfeaturestoinstall”,点“Next”,在下一菜单中选择“NewLocalSite”或“NewArchivedSite”,找到你下载的插件所在书目,选中安装即可。其次种方法:在Eclipse的主书目(%ECLIPSE_HOME%)下有一个plugins书目和features书目。将插件解压缩后,在解压

12、缩后的文件夹里一般可以看到plugins文件夹,有的插件解压缩后还可以看到一个features文件夹。一般将plugins文件夹下的内容干脆拷贝到%ECLIPSE_HOME%/plugins书目下,假如解压缩后的插件书目下还有features文件夹,则把该文件夹下的内容也拷贝到%ECLIPSE_HOME%/features下。重新启动Eclipse之后就可以运用刚刚安装的插件了。第三种方式:就是在Eclipse主书目下创建一个links书目,然后将你自己的插件放在你想放的任何地方,这个时候你放插件的书目就是插件书目(%PLUGIN_HOME%),然后在你的%ECLIPSE_HOME%/link

13、s/书目下创建一个link文件,比如要安装一个Lomboz插件,可以在links书目下创建一个Lomboz.eclipse.link文件,link文件的名称随意取。这个Lomboz.eclipse.link文件指向的存放Lomboz插件的书目(%PLUGIN_HOME%)。假如你的Lomboz插件的zip/rar文件解压缩后放在C:/eclipse_plugins/Lomboz.eclipse下(假如是插件是jar文件则可以不用解压缩),则Lomboz.eclipse.link文件的内容就应当是:path=C:/eclipse_plugins/Lomboz.eclipse。留意:path所指的

14、文件路径肯定要增加一个“/”转义符来分开。其余插件的安装也是如此,比如安装Eclipse多国语言包,通过安装Eclipse多国语言包,Eclipse可以自动实现开发环境的本地化,即自动依据操作系统的语言环境选择语言包进行本地化,先到http:/download.eclipse.org/eclipse/downloads/下载Eclipse3.2版本的多国语言包,其名称为Languagepack。根据前面的第三种方式安装即可。2.2.5配置ZK环境(ZK库)1.打开Eclipse(前提条件是已经安装好了ZKstudio插件),假如没有安装,请先根据前面的介绍安装插件;2.点击菜单Window-P

15、references(FrommenugotoWindowsPreferences);3.在打开的这个窗口上选择ZK-ZKPackages(OnthePreferencesWindow,selectZKZKPackages);4.点击AddDiretory选择到你下载的ZKLibrary包,不用解压,干脆是ZIP文件,如下图:5.会跳出一个窗口来,点击OK6.给这个包命名,一般就用默认的,点击OK;7.再选择上那个ZKLibrary就行了,假如你不选择,会自动选择最终你引入的版本的。到此,ZK的环境就配置完了。2.3第一个用Eclipse创建的ZK项目:HelloWorld2.3.1创建项目过

16、程1.启动Eclipse,我倾向于在JavaEE下创建项目2.假如没有建立Server的话,须要先打开Window-showview-other-servers右击选择New-Server,然后选择tomcat即可;3.选择File-New-DynamicWebProject,输入项目名称,例如我给项目其名字为MyZK;4.点Next,再点Finish就完成了一个ZK项目的创建;5.右击项目名称,选择properties-JavaBuidPath给项目导入ZK的Jar包,将%ZK_HOME%/dist/lib书目下的全部jar文件(假如须要更多ZK附加功能,加入ext与zkforge书目下的j

17、ar文件)到WebContent/WEB-INF/lib书目下。6.创建一个新的ZUL文件(CreatinganewZULfile):helloworld;7.创建完.zul文件后,写入ZK代码;8.启动Tomcat服务器,选择MyZK,运行;9.在阅读器里输入:http:/localhost:8080/MyZK/first.zul,就可以看到下面的内容。2.4例子中的配置分析2.4.1项目书目结构在Eclipse下搭建的ZK环境上开发的程序,比如对于上面的例子项目MyZK,其书目结构如下所示:下面对于上面的书目中的文件,我通过查找资料,进行了总结,对于Zk的配置文件大体的意思是:WEB-IN

18、F/web.xml定义了必需的servlet,及运行ZK应用程序所须要的监听器;WEB-INF/zk.xml为ZK的配置描述文件;WEB-INF/lib包括了ZK的必需库文件;该应用程序所需的重要jar包文件说明:.bsh.jar:BeanShellJava代码说明器.commons-el.jar:Apache的EL表达式说明器.zcommon.jar:ZK的通用库.zhtml.jar:XHTML相关组件.zk.jar:ZK核心代码.zkplus.jar:与AcegiSecurity,Spring,Hibernate,和databinding集成的代码.zul.jar:XML相关组件.zweb

19、.jar:web相关功能代码2.4.2关于web.xml的配置在web.xml中为ZK定义必需的servlet,及listener,我把在该项目MyZK下的web.xml文件中的代码拷贝如下:MyZKUsedtocleanupwhenasessionisdestroyedZKSessioncleanerorg.zkoss.zk.ui.http.HttpSessionListenerTheZKloaderforZUMLpageszkLoaderorg.zkoss.zk.ui.http.DHtmlLayoutServletupdate-uri/zkau1Theasynchronousupdatee

20、ngineforZKauEngineorg.zkoss.zk.au.http.DHtmlUpdateServletLoginServletLoginServletservlet.LoginServletzkLoader.zulzkLoader.zhtmlauEngine/zkau/*LoginServlet/userloginindex.htmlindex.htmindex.jspdefault.htmldefault.htmdefault.jspindex.zul2.4.3关于zk.xml的配置.xml文件是对ZK配置的描述性文件,我把在该项目MyZK下的zk.xml文件中的代码拷贝如下:a

21、jax/timeout.zul3组件基础属性及事务3.1ID属性为了读取Java代码或EL表达式中的组件,我们可以运用id属性来标识它。在下面的例子中,我们为label设置了一个标识,这样当一个按钮被按下时,我们就可以操纵label的值了。如下面两个例子可以让你领悟id的作用DoyoulikeZK?当按下“Yes”按钮的时候,可以看到如下效果。id属性在EL表达式中的应用,如下代码:这段代码实现的是将文本框中的值赋给标签,“source”就代表着文本框,我们只需对其进行操作就相当于对文本框操作了。3.2IF和unless属性if和unless属性被用于限制是否创建一个组件,在下面的例子中,两个

22、label只有在恳求中含有一个为vote的属性时才被创建:假如两个属性都被指定,将不会创建组件除非它们的值都被赋值为true。3.3use和apply属性在页面中嵌入代码不当会增加维护的难度,有两种途径可以从视图中分别出代码。一种途径是你可以监听所关切的事务,然后调用合适的方法进行处理。例如,可以调用onCreate,onOK,onCancel事务来完成初始化(initialize),处理(process)和取消(cancel)等工作。另外,必需有一个名称为MyManager的Java类,内容像下面一样:importorg.zkoss.zul.Messagebox;importorg.zkos

23、s.zul.Window;publicclassMyManagerpublicstaticvoidinit(Windowmain)main.setTitle(“关注我的恳求!“);publicstaticvoidsave(Windowmain)throwsInterruptedExceptionmain.setTitle(“save“);Messagebox.show(“您的信息已经保存!“);publicstaticvoidcancel(Windowmain)throwsInterruptedExceptionmain.setTitle(“cancel“);Messagebox.show(“

24、你取消的恳求已经完成!“);按下“save”按钮的时候,程序运行的效果如下:但是,上面的方法须要你在ZUML页面内嵌入一些代码。在用户界面(UI)内嵌入代码的优点是可以很简单的动态变更行为(特殊是在原型阶段),但是这仍旧会呈现一些维护代码且性能会有一些降低。于是引出了use和apply属性的运用。3.3.1use属性若不想在ZUML页面内运用Java代码,你可以继承一个组件的实现来处理事务,如下。importorg.zkoss.zul.Messagebox;importorg.zkoss.zul.Window;publicclassMyWindowextendsWindowpublicvoid

25、onCreate()this.setTitle(“关注我的改变!“);publicvoidonSave()this.setTitle(“save“);publicvoidonCancel()this.setTitle(“cancel“);然后,运用use属性指定类,如下。执行效果如下:3.3.2apply属性若你喜爱运用MVC(模型-试图-限制者)方法,例如,你不想在window(视图)内嵌入处理代码,可以实现一个类来初始化window。这个类必需实现org.zkoss.zk.ui.util.Composer接口。importorg.zkoss.zk.ui.Component;importor

26、g.zkoss.zk.ui.util.Composer;importorg.zkoss.zul.Window;publicclassMyComposerimplementsComposerpublicvoiddoAfterCompose(Componentcomp)throwsException(Window)comp).setTitle(“Applycanbeusedasthis!“);/dowhateverinitializationyouwant在这里我们假设你有三个监听器,MyCreate,MyOK,和MyCancel。参考下面的事务章节获得事务监听器的说明。然后,运用apply属性指

27、定类,如下。按下apply按钮,程序执行效果如下:window仍旧作为org.zkoss.zul.Window的一个实例被创建,且作为comp参数被传递给doAfterCompose方法。然后,你可以处理你所希望的初始化。若你想apply多个composer,运用逗号隔开。另外,你可以运用EL表达式来返回类,它的名称,Composer实例,或Composer实例的集合。示意的代码如下:3.3.3与forward属性一起运用window通常由一些按钮,菜单项目和其他组件组成。例如,当用户点击按钮时,onClick事务会被送至按钮本身。但是这些事务最好在window内处理而不是散落这些按钮。为了这

28、样,你可以按如下方式运用forward属性。.在这里OK按钮的forward属性指定接收onClick事务后将其作为onOK事务转向空间全部者(例如,window)。同样,针对Cancel按钮的onClick事务会转向onCancel事务。因此你可以在MyWindow命名空间内处理onOK和onCancel事务,如下。publicclassMyWindowextendsWindowpublicvoidonOK()/calledwhentheOKbuttonisclicked(ortheENTERbuttonispressed)publicvoidonCancel()/calledwhenthe

29、Cancelbuttonisclicked(ortheESCbuttonispressed)除了将onClick事务forward至空间全部者,你可以运用forward属性将任何事务forward至任何组件。3.4forEach属性forEach属性用来限制要创建多少个组件,假如你为这个对象指定一个对象集合,ZK装载机(ZKloader)将为每个被指定的集合项目创建一个组件。在下面的ZUML页面中,listitem元素将被赋值三次(分别为“Monday“,“Tuesday“和“Wednesday“),然后产生三个list项目。contacts=newString“Monday“,“Tuesda

30、y“,“Wednesday“,“Thursday“,“Friday“,“Saturday“,“Sunday“;代码运行的效果如下:除了运用foreach,还可以通过forEachBegin和forEachEnd来限制迭代(iteration)。3.5事务处理事务(org.zkoss.zk.ui.event.Event)用来通知服务器发生了什么。每种类型的事务都由一种不同的类来表示。例如,org.zkoss.zk.ui.event.MouseEvent来代表鼠标活动,如点击。为了响应事务,服务器须要为其注册一个或多个事务监听器。由两种方法来注册一个事务监听器。一种是通过在标记语言中指定onXxx

31、属性。另一种方法是为你要监听的组件或页面调用addEventListener方法。除了在阅读器端由客户活动触发的事务,一个应用程序可以运用org.zkoss.zk.ui.event.Events类中的sendEvent和postEvent方法来触发事务。3.5.1桌面和事务处理如上所述,桌面是页面的集合,这些页面服务于同样的URL恳求。一个桌面当然是事务监听器能读取的范围。当一个事务被触发时,它就和桌面联系在一起。ZK分别基于关联桌面及流水事务(pipelinesevents)分成单独的队列。因此,同一桌面的事务可以被依次处理。另一方面,不同桌面的事务可以被并行处理。一个事务监听器是被允许读取

32、事务关联桌面内任何页面的任何组件的。它也被允许将一个组件从一个页面移到另一个页面,只要这些页面在同一桌面内。另一方面,它不能读取到其它桌面的组件。注:开发人员可以在一个事务监听器中将一个组件从一个桌面卸载,然后在另外的事务监听器中将其添加到另外一个桌面。3.5.1.1桌面及创建组件当一个组件在一个事务监听器中被创建时,它就自动被安排到被处理的事务相关联的桌面。即使组件不属于一个页面这种安排也会发生。这就意味着你在事务监听器中创建的任何组件可以用于监听正在处理的同一桌面。假如一个组件是在一个线程(thread)而不是任何事务监听器中创建的话,它就不属于任何桌面。在这种状况下,可以将它添加到任何一

33、个桌面,只要添加发生在一个合适的监听程序中。当然,一旦组件被添加到一个桌面,它就始终属于这个桌面。对于大多数应用程序而言,很少在线程(thread)而不是事务监听器中创建组件。然而,假如有一个长操作(longoperation),你或许会在后台线程(backgroundthread)中执行它。那么,你可以在后台打算一些组件树,然后在合适的事务被接收时将它们添加到桌面。关于此的具体信息,参看事务监听与处理一节的具体介绍。3.5.2事务监听与处理3.5.2.1通过标记语言添加事务监听器添加一个事务监听器最简洁的方法就是在一个ZUML页面内声明一个属性。用来监听的属性的值是可以被BeanShell说

34、明的任何Java代码。点击“saywelcome”按钮,效果如下图所示:3.5.2.2通过程序添加或移除事务监听器有两种方法通过程序添加或移除事务监听器。第一种声明一个成员当用你自己的类重定义(overriding)一个组件后,你可以声明一个成员函数成为事务监听器。在一个ZUML页面中,你可以运用use属性来指定你想运用的类,即用它去替换默认类。如下所示,它运用了MyWindow来替换默认的org.zkoss.zul.Window。然后你淂实现MyWindow.java同过继承默认的类,就像下面一样:publicclassMyWindowextendsorg.zkoss.zul.Windowp

35、ublicvoidonOK()/addaneventlistener./handlestheonOKevent(sentwhenENTERispressed)假如你想获得关于事务的更多信息,你可以按如下方式声明:publicvoidonOK(org.zkoss.zk.ui.event.KeyEventevent).不同的事务或许与不同的事务对象相关联。其次种动态地添加与移除事务监听器开发人员可以运用org.zkoss.zk.ui.Component接口中的addEventListene和removeEventListener方法来动态地添加或移除事务监听器。如下所示,动态添加的事务监听器必需实

36、现org.zkoss.zk.ui.event.EventListener接口。voidinit(Componentcomp).comp.addEventListener(“onClick“,newMyListener();.classMyListenerimplementsorg.zkoss.zk.ui.event.EventListenerpublicvoidonEvent(Eventevent)throwsUiException./processingtheevent(1)延期事务监听器默认状况下,当客户端的事务被触发时就会被送到服务器。但是,很多事务仅用于维持服务器端的现状,而不是向客户

37、端供应视觉响应(visualresponse)。换句话说,这些监听器的事务并不须要立刻被送出。相反,它们应当仅被提交一次,以降低客户端和服务器端的来往,以提高服务器的性能。为求描述便利,我们称它们为延期事务监听器(DeferrableEventListeners)。为了使一个事务监听延期,必需实现org.zkoss.zk.ui.event.Deferrable接口(和EventListener)并且运用isDeferrable方法返回true,就像下面一样。publicclassDeferrableListenerimplementsEventListener,Deferrableprivat

38、eboolean_modified;publicvoidonEvent(Eventevent)_modified=true;publicbooleanisDeferrable()returntrue;当客户端的一个事务(例如,选择一个列表项目(listitem)被触发时,假如没有为其注册事务监听器或仅有延期(deferrable)的监听器被注册,ZK不会将事务送出。一方面,假如至少有一个非延期(non-deferrable)监听器,事务会被立刻送到服务器端,和全部的队列事务(queuedevents)一起。没有事务会丢失,到达依次是保存好的。提示:当有非延期监听器为用户供应视觉响应,可以运用运

39、用延期的(deferrable)事务监听器维持(maintaining)服务器状态。(2)为页面动态地添加和移除事务监听器开发人员可以为页面(org.zkoss.zk.ui.Page)动态地添加和移除事务监听器。一旦被添加,全部被指定名字的事务会被送到指定页面的任何组件,这些页面将会被送到监听器。全部的页面级(page-level)事务监听器都是非即时。换言之,isArap方法被忽视了。一个典型的例子是运用页面级事务监听器来维护修改标记(modificationflag),如下:importorg.zkoss.web.servlet.dsp.action.Page;importorg.zkos

40、s.zk.ui.event.Deferrable;importorg.zkoss.zk.ui.event.Event;importorg.zkoss.zk.ui.event.EventListener;importorg.zkoss.zul.Window;importorg.zkoss.zk.ui.*;publicclassModificationListenerimplementsEventListener,DeferrableprivatefinalWindow_owner;privatefinalPage_page;privateboolean_modified;publicModifi

41、cationListener(Windowowner)/Note:wehavetorememberthepagebecauseunregistermight/becalledaftertheownerisdetached_owner=owner;_page=(Page)owner.getPage();(org.zkoss.zk.ui.Page)_page).addEventListener(“onChange“,this);(org.zkoss.zk.ui.Page)_page).addEventListener(“onSelect“,this);(org.zkoss.zk.ui.Page)_

42、page).addEventListener(“onCheck“,this);/*Calledtounregistertheeventlistener./publicvoidunregister()(org.zkoss.zk.ui.Page)_page).removeEventListener(“onChange“,this);(org.zkoss.zk.ui.Page)_page).removeEventListener(“onSelect“,this);(org.zkoss.zk.ui.Page)_page).removeEventListener(“onCheck“,this);/*Re

43、turnswhetherthemodifiedflagisset./publicbooleanisModified()return_modified;publicvoidonEvent(Eventevent)throwsExceptionpublicbooleanisDeferrable()returnfalse;3.5.2.3调用依次调用事务监听器的依次如下。假定接收的是onClick事务。1.假如监听器实现了org.zkoss.zk.ui.event.Express接口,依次为添加到目标组件(targetingcomponent)的onClick事务调用事务监听器。根据添加的依次调用。2.调用目标组件的onClick属性指定的脚本语言。3.假如监听器没有实现org.zkoss.zk.ui.event.Express接口,依次为添加到目标组件的onClick事务调用事务监听器。根据添加的依次调用。4.调用目标组件的onClick成员方法。5.依次为添加到目标组件所属页面的的onClick事务调用事务监听器。根据添加的依次调用。org.zkoss.zk.ui.event.Express接口是一个装饰器(deco

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作计划

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com