- 浏览: 1167257 次
- 性别:
- 来自: 火星郊区
-
博客专栏
-
-
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倍效率”开发者
一,什么是forward
forward属性是zk提供的一个事件转发特性,
该特性将自身的某个原始事件转发到指定的目标组件上
或者将自身的onClick事件转发给另外一个事件
二,forwrd的格式
forward属性可以定义为如下格式
1#,forward="target_event_expr"
2#,forward="oringal_event=target_event_expr"
1.1-----如果未指定oringal_event原始事件,默认为onClick事件
所以第1种的完整写法是forward="onClick=target_event_expr",
1.2-----第二种格式,你可以随意定义原始事件
例如:<button forward="onMouseOver=onSavePosition"/>
<button forward="onBlur=targetId.onClick"/>
第二种方式是一个通用格式,但大部分情况下我们使用的是onClick事件,
所以提供了格式1,方便我们的开发
1.2.1------target_event_expr是一个表达式,这个表达式也有几种写法:
1#,event-name
2#,target-id.event-name
3#,id1/id2/id3.event-name
4#,${el-expr}.event-name
三,forward的目标是谁?
在上例子中
<button forward="onMouseOver=onSavePosition"/>
onSavePosition是谁的事件呢?
而<button forward="onSavePosition"/>中onSavePosition事件又是谁的呢?
在这两个例子中,都不属于以下类型,以下三种都指定了目标组件
1#,target-id.event-name
2#,id1/id2/id3.event-name
3#,${el-expr}.event-name
event-name前未指定目标组件,那么zk如何处理???
在zk的组件创建阶段,组件创建完毕后,有这么一段代码
ComponentsCtrl.applyForward(child, childInfo.getForward());(zk5.0.6 UiEngineImpl 743行)
该代码的作用是应用forward表达式,创建EventListener监听器,由此我们还可以知道forward其实
与comp.addEventListener差不多的
然后我们找,找到我们感兴趣的代码,
然后我找到了AbstractComponent的ForwardEventListener
的onEvent方法(zk5.0.6 AbstractComponent 2973行)
- public void onEvent(Event event) {
- final Object[] info = (Object[])_auxinf.forwards.get(_orgEvent);
- if (info != null )
- for (Iterator it = new ArrayList((List)info[ 1 ]).iterator();
- it.hasNext();) {
- final Object[] fwd = (Object[])it.next();
- Component target = resolveForwardTarget(fwd[0 ]);
- if (target == null ) {
- final IdSpace owner = getSpaceOwner();
- if (owner instanceof Component) {
- target = (Component)owner;
- } else {
- //Use the root component instead
- for (target = AbstractComponent. this ;;) {
- final Component p = target.getParent();
- if (p == null )
- break ;
- target = p;
- }
- }
- }
- //bug #2790393 Forward event listener shall be called immediately
- //(since 3.6.2) change from postEvent to sendEvent to
- //make forward event deterministic
- Events.sendEvent(
- new ForwardEvent((String)fwd[ 1 ], target, event, fwd[ 2 ]));
- }
- }
为了方便理解,我解释一下关键代码的意思,假如转发到的目标target组件为空,首先检测该组件的所属命
名空间是否为一个组件, 如果是一个组件类型,那么设置该命名空间为目标组件,反之将循环迭代获取,直至获取该组件的根组件,即root component
那么上面我们产生的疑问就豁然开朗了,
那么实际开发中我们需要注意什么
1,首先在mvc模式开发中,controller(use或apply指定的类)最好建立在forward组件所属的命名空间上
2,如果没有命名空间,那么将controller(use或apply指定的类)放在root component
四,传递参数
1,forward="target_event_expr"
2,forward="oringal_event=target_event_expr"
其中target_event_expr目标事件表达式,有四个类型
1#,event-name
2#,target-id.event-name
3#,id1/id2/id3.event-name
4#,${el-expr}.event-name
这四种类型的event-name也可以使用()号,像方法一样也可以有参数,这个参数可以是el表达式,
a,<button forward="onSomeEvent(${2+2})"/>
b,<label id="compId"/><button forward="onBlur=onSomeEvent(compId)"/>
b,<button forward="onBlur=compId.onSomeEvent("你好我是参数")"/>
在事件方法中onSomeEvent(Event event){
event.getData();//返回传递的参数
}
发表评论
-
ZK PPT
2012-02-27 17:28 1221附件中为ZK系列的PPT -
zk+spring+hibernate延迟加载的解决办法
2012-02-24 14:22 1293由于Zk 的AU request,lazy load现在没 ... -
【zk开发】zk注解的秘密
2012-02-24 14:23 1612The DataBinder that reads ZUML ... -
【zk开发】zkstudio安装及使用视屏
2012-02-26 12:04 1283安装视屏 http://docs.zkoss.org/w ... -
zk主题生成器
2012-02-26 12:04 1639生成器在附件内,兼容zk3.x 与zk5.x,zktheme ... -
zk服务器端获取鼠标点击位置
2012-02-26 12:04 1415index.zul Xml代码 ... -
zk Fiddle-zk在线测试保存代码分享平台
2012-02-23 08:20 1496http://zkfiddle.org/ 是zk项目组之一 ... -
zksample2-一个复杂应用的zk示例
2012-02-23 08:19 1499Zks ample2 is a demo applica ... -
zk5.0.8发布
2012-02-23 08:18 980该版本是一个维护版本,主要于bug修复及引入几个新特性 ... -
zk数据绑定
2012-02-23 08:17 1834简介 : 关于数据绑 ... -
zk EE/PE/CE的区别
2012-02-18 09:32 3166自从zk5.0以后,zk拆分为 ... -
ZK 5.0.8 新特性
2012-02-18 09:32 19158月16日,zk官网:zk5.0.8将要发布 zk5. ... -
zk client与server code结合提高长操作的响应性
2012-02-18 09:32 1461一,关于长操作与响应性 zk client与serve ... -
zk tooltiptext中换行
2012-02-17 11:37 1564Xml代码 <window ti ... -
zk下载文件中文乱码解决方案
2012-02-17 11:37 3697本文来自http://sun4love.iteye.com/b ... -
【zk视频】如何了解一个组件默认支持服务器端事件
2012-02-17 11:37 1328如何了解一个组件默认支持服务器端事件? 知识点:在z ... -
【zk视频】如何查看zk源码,了解zk原理
2012-02-17 11:37 1682当org.zkoss.zul.Window关闭时,zk是如 ... -
ZK 5.0.7发布,及新特性
2012-02-15 09:10 1175ZK 是一套以 AJAX/XUL/Java 为基础的网页应用 ... -
use【组件公共属性】
2012-02-15 09:09 1109语法 apply="a-class- ... -
zk异步请求异常,自定义错误页面的bug
2012-02-15 09:09 1154zk版本5.0.6 现在遇到一个问题,觉得是bug, ...
相关推荐
##### forward属性 - `forward`属性用于实现页面间的跳转。 - 这使得开发者能够在不同页面间传递参数,并实现导航功能。 ##### 手动创建组件 - 除了通过ZUML定义组件外,还可以手动创建组件。 - 这种方式适用于需要...
### 知识点详解:适合初学者的ZK开发文档 #### ZK:开发者参考手册概览 ZK是一款开源的、高性能的Web应用程序框架,主要用于构建动态的、丰富的互联网应用(RIA)。它通过组件化的架构,使得开发者能够像编写桌面...
**二、ZK开发环境搭建** ZK的开发环境主要涉及JAR包的导入和web.xml的配置。首先,需要将ZK的相关JAR包导入到项目的类路径中。然后,在web.xml中添加ZK的Servlet配置,以便服务器能够识别ZK的应用。 **三、常用...
### ZK 开发指南知识点概览 #### 一、引言 - **传统Web应用程序**:介绍了传统Web应用的工作方式,以及与ZK框架的区别。 - **即兴AJAX应用程序**:探讨了早期AJAX应用的特点及其局限性。 - **ZK是什么**:明确了ZK...
通过以上知识点的学习,开发者可以更好地掌握 ZK 的基本用法,并利用这些功能来开发高质量的 RIA 应用程序。ZK 的设计旨在简化 AJAX 的使用,使开发者能够集中精力于业务逻辑而无需过多关注底层实现细节。
### ZK框架简介与开发指南 #### 一、引言 ZK框架是Potix公司开发的一款用于构建高性能Web应用程序的开源Java框架。它通过一套丰富的组件库和强大的事件驱动模型,使得开发者能够轻松地创建出高度交互性的用户界面...
【SSH手动搭建与集成Jar包详解】 ...以上就是关于SSH手动搭建、集成jar包以及ZK开发环境搭建和常用功能的详细解释。通过深入理解这些概念和技术,开发者能够更加熟练地运用SSH和ZK进行Web应用开发。