EL表达式

就像JSP一样,你可以在ZUML页面的任何部分使用EL表达式,但除了属性的名字(names of attributes),元素(elements)和处理指令(processing instruction)。

EL表达式的语法格式为${expr},例如:

<element attr1=”${bean.property}”.../>
${map[entry]}
<another-element>${3+counter} is ${empty map}</another-element>

[提示]: emp ty是用来测试一个map, collection, array 或者string 是否为null或空的。

[提示]: map[entry]是读取map元素的一种方法,换句话说,就像Java中的 map.get(entry)

当一个EL表达式作为一个属性值时,它可以返回任何类型的对象,对象的长度限制在组件可以接受的范围内。在下面的例子中,表达式被赋予一个Boolean对象的值:

<window if="${some > 10}">

[提示]: + 在EL表达坏中是算数操作,并不能用于string类型。对于string可以使用 "${expr1} is added with ${expr2}"。

标准的隐含对象(implicit objects),如paramrequestScope,还有ZK的隐含对象,如selfpage,可以很简单的使用。

<textbox value="${param.who} does ${param.what}"/>

为了引入一个方法,你可以按如下方法使用xel-method处理指令(processing instruction) 。

<?xel-method prefix="c" name="forName"
   class="java.lang.Class" 
   signature="java.lang.Class forName(java.lang.String)"?>
<textbox value="${c:forName('java.util.List')}"/>

通过从TLD引入EL函数,你可以使用被称为tablib的指令,就像下面:

<?taglib uri="http://www.zkoss.org/dsp/web/core" prefix="c" ?>

Developer's Reference 提供了更多关于EL表达式的细节。或者,你可以参考JSP 2.0的指南或手册来来获得更多关于EL表达式的信息。