forEach属性により何個のコンポーネントが作られるかが決められます。この属性にオブジェクトのコレクションを指定したら、ZKローダーがコレクションにあるそれぞれの項目にコンポーネントを作成します。たとえば、以下のZUMLページの中で、listitem要素が三回 (Mondayと Tuesdayと Wednesdayを)指定したので、三つのリスト項目が作成されます。
<zscript>contacts = new String[] {"Monday", "Tuesday", "Wednesday"};</zscript> <listbox width="100px"> <listitem label="${each}" forEach="${contacts}"/> </listbox>
forEach属性を使って要素を処理する際、each 変数はひとつずつコレクションのオブジェクトより値が指定されます。すなわち、前例では contacts がコレクションです。ですので、上記のZUMLページは以下のものと同様です。
<listbox> <listitem label="Monday"/> <listitem label="Tuesday"/> <listitem label="Wednesday"/> </listbox>
別の表現をすれば、 forEach 属性の アイテムリストをカンマで区切って指定することもできます。
<listbox> <listitem label="${each}" forEach="Monday, Tuesday, Wednesday"/> </listbox>
forEachに加えて、forEachBeginとforEachEndを使って繰り返すこともできます。詳細はZKユーザーインターフェースマークアップ言語のZK属性をご覧ください。