<zk>...</zk>
他の要素を集めるのに特別な要素が使われます。本当のコンポーネント(例えば、hbox or div)とは異なり、コンポーネントツリーの一部分ではありません。つまり、コンポーネントではありません。例えば、
<window> <zk> <textbox/> <textbox/> </zk> </window>
は下と同じ働きをします。
<window> <textbox/> <textbox/> </window>
では、何のために使うのでしょうか?
XMLのシンタックス制限により、ドキュメントのルートは一つのみ指定することができます。こうして、多数のルートコンポーネントを持つと、zkをドキュメントルートとして使用しなければならず、ルートコンポーネントをグループ化します。
<?page title="Multiple Root"?> <zk> <window title="First"> ... </window> <window title="Second" if="${param.secondRequired}"> ... </window> </zk>
コンポーネントのようなzk要素はforEach属性に対応できます。こうして、forEach属性を使って、条件によって違ったタイプのコンポーネントを生成します。以下の例では、mycolsはオブジェクトの集合であって、いくつかのメンバを持っています:isUseText() 、 isUseData() 、 isUseCombo()です。
<window> <zk forEach="${mycols}"> <textbox if="${each.useText}"/> <datebox if="${each.useDate}"/> <combobox if="${each.useCombo}"/> </zk> </window>
Attribute Name |
Description |
---|---|
if |
[Optional][Default: true] 処理する条件を定義します。 |
unless |
[Optional][Default: false] 処理しない条件を定義します。 |
forEach |
[Optional][Default: ignored] オブジェクトの集合を指定して、ZK要素が集合中のどのオブジェクトに対しても繰り返し処理するようにします。指定されていない、或は、空である場合、属性は無視されます。集合で無いオブジェクトが指定された場合、単要素集合のように、一度だけ処理されます。 |
switch |
[Optional][Default: none] Provide the context for mutually exclusive evaluation. The value specified in this attribute is called the switch condition. The only allowed children are the zk elements. |
case |
[Optional][Default: none] Provides an alternative within the switch evaluation. If the value is a string starting and ending with slash, such as /a[p]*/, it is considered as a regular expression, which is used to match the switch condition. You can specify multiple cases by separating them with comma. |
choose |
[Optional][Default: none] Provide the context for mutually exclusive evaluation. The only allowed children are the zk elements. |
when |
[Optional][Default: none] Provides an alternative within the choose evaluation. It is evaluated if the condition matches. |