创建一个元素的流程可以条件式的。通过只指定if或unless属性,或都指定,开发人员可以控制是否创建相关的元素。
在下面的例子中,如果a为1,且b不为2 window 组件就会被创建。如果一个元素被忽略,那么它所有的组件都会忽略。
<window if="${a==1}" unless="${b==2}"> ... </window>
下面的例子控制什么时候解释Java代码。
<textbox id="contributor"/> <zscript if="${param.contributor}"> contributor.label = Executions.getCurrent().getParameter("contributor"); </zscript>
使用zk
元素的switch
和case
属性,你可以控制ZK页面在一个变量等于某个特定值时才会被执行。
<zk switch="${fruit}"> <zk case="apple"> Evaluated only if ${fruit} is apple </zk> <zk case="${special}"> Evaluated only if ${fruit} equals ${special} </zk> <zk> Evaluated only if none of the above cases matches. </zk> </zk>
ZK加载器会从第一个case
执行到最后一个case
,直到匹配switch
的条件,即switch
属性指定的值。语句是互相排斥的条件(The evaluation is mutually exclusive conditional.),只有第一个匹配的case才会被执行。
zk
元素没有任何case
匹配,则为default
-即,当前面所有的case
都不匹配时则执行default
。
你可以为case
属性指定一个case
列表,这样当其中一个匹配时,此部分的ZK页面会被执行。
<zk switch="${fruit}"> <zk case="apple, ${special}"> Evaluated if ${fruit} is either apple or ${special} </zk> </zk>
<zk switch="${fruit}"> <zk case="/ap*.e/"> Evaluate if the regular expression, ap*.e"., matches the switch condition. </zk> </zk>