Home   Single Page

Switch と Case

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 ローダーは、switch 属性で指定された値の switch 条件にマッチするまで、最初の case から最後の case の範囲で 評価をし続けます。評価はお互いに排他的です。最初にマッチした case のみ評価されます。

デフォルトでは、どの case もない状態です。ということは、いつもマッチします。そして上記の全ての case がマッチしないときに評価されます。

複数の case

ZK ページの部分が複数の case のどれかとマッチするかの評価が必要なときは、1つの case 属性に case のリストを指定できます。

<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>

forEach と供に使用

他の要素( if や unless とも)と同じように forEach 属性と供に使用することが出来ます。forEach 条件が最初に評価されるため、以下のサンプルは「複数の case 」と同じです。

<zk case="${each}" forEach="apple, orange">

は次と同じです。

<zk case="apple, orange">