就像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),如param
和requestScope,
还有ZK的隐含对象,如self
和page,
可以很简单的使用。
<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表达式的信息。