隐含对象

对于嵌入到ZUML页面的脚本,有一套可以使开发人员更有效地访问组件的隐含对象。这些对象对于zscript元素包含的Java代码及事件监听器指定的属性是可用的。当然对于EL表达式也是可用的。

例如,selforg.zkoss.zk.ui.Component的用来代表被处理组件的一个实例。在下面的例子中,在事件监听器中使用self来标识组件。

<button label="Try" onClick="alert(self.label)"/>

同样,event代表当前事件监听器正在处理的事件。因此上面语句的等价程序如下:

<button label="Try" onClick="alert(event.target.label)"/>

隐含对像列表

对象名称

描述

self

org.zkoss.zk.ui.Component

组件本身。

spaceOwner

org.zkoss.zk.ui.IdSpace

组件的空间所有者,与self.spaceOwners相同。

page

org.zkoss.zk.ui.Page

页面,与self.page相同。

desktop

org.zkoss.zk.ui.Desktop

桌面,与self.desktop相同。

session

org.zkoss.zk.ui.Session

会话。

application

org.zkoss.zk.ui.WebApp

Web 应用程序。

componentScope

java.util.Map

在组件中定义的属性的映射(map)。与

org.zkoss.zk.ui.Component接口中的getAttributes方法相同。

spaceScope

java.util.Map

在包含此组件的命名空间内定义的属性的映射(map)。

pageScope

java.util.Map

定义在页面内属性的映射(map)。与

org.zkoss.zk.ui.Page接口中的getAttributes方法相同。

desktopScope

java.util.Map

定义在桌面内属性的映射(map)。与

org.zkoss.zk.ui.Desktop接口中的getAttributes方法相同。

sessionScope

java.util.Map

定义在session内属性的映射(map)。与

org.zkoss.zk.ui.Session接口中的getAttributes方法相同。

applicationScope

java.util.Map

定义在web程序内属性的映射(map)。与

org.zkoss.zk.ui.WebApp接口中的getAttributes方法相同。

requestScope

java.util.Map

在request内定义属性的映射(map)。与

org.zkoss.zk.ui.Execution接口中的getAttributes方法相同。

arg

java.util.Map

arg参数会被传送到org.zkoss.zk.ui.Executions类的createComponents方法。不能为null。

注意,只有为包含页面(included page)(createComponents方法的第一个参数)创建组件时arg才是可用的。另一方面,包括onCreate事件在内的所有事件会在之后被处理。然后,如果你想访问onCreate事件监听器中的arg,可以使用

org.zkoss.zk.ui.event.CreateEvent类的getArg方法。

self.desktop.execution.arg相同。

each

java.lang.Object

当ZK 为每个迭代元素赋值(evaluates)时,其代表被迭代(iterated)集合的当前项目。一个迭代元素即为使用forEach属性的元素。

forEachStatus

org.zkoss.zk.ui.util.ForEachStatus

一个迭代器(iteration)的状态。当为迭代元素赋值时,ZK陈列出(exposes)迭代发生时的相关信息。

event

org.zkoss.zk.ui.event.Event 或派生类

当前事件。仅对事件监听器可用。

关于Request和Execution的信息

org.zkoss.zk.ui.Execution接口提供了关于当前执行(execution)的信息,如请求参数。为了获取当前的execution ,你可以选择一种方法:

  1. 在组件中使用getDesktop().getExecution()

  2. 如果没有涉及到(reference)组件,页面或桌面,使用org.zkoss.zk.ui.Executions类中的

    getCurrent方法。