変数のセットを定義します。variables要素が親ページと親コンポーネントを持っていて、ページレベルで宣言されている場合、variables要素は親コンポーネントを持っていれば、 Component のsetVariableメソッドと同じ働きをします。
以下に書かれているように、variablesはプログラムなしで変数を指定するのに便利です。
<window> <variables rich="simple" simple="intuitive"/> </window>
上記は下記と同じ働きをします。
It is equivalent to
<window> <zscript> self.setVariable("rich", "simple", false); self.setVariable("simple", "intuitive", false); </zscript> </window>
もちろん、値にEL表記を指定することができます。
<window> <window id="w" title="Test"> <variables title="${w.title}"/>1: ${title} </window> 2: ${title} </window>
コンポーネントのsetVariableのように、以下のように現IDスペースにローカル変数を宣言するかどうか決めることができます。指定されていない場合、local=”false”が想定されます。
<variables simple="rich" local="true"/>
デフォルトで、値は もし有れば、EL 表記の評価後は直接変数にアサインされます。例えば ${more}" は more が orange ならば、"apple, orange"と等価で、変数にアサインされます。
もし、値のリストを指定したいならば、次のようにリストで複合属性を指定できます。
<variables simple="apple, ${more}" composite="list"/>
そして、これは2つの要素を持つリストに変換されます。最初の要素は "apple" で 2 番目は "orange"です。
もし、 values の map を指定したいならば、map の複合属性を指定できます。
<variables simple="juice=apple, flavor=${more}" composite="map"/>
それから、これは 2 個のエントリーをもつ map に変換されます。最初のエントリーは ("juice", "apple") で、2 番目は ("flavor", "orange")です。
以下の例ではvarは空の文字列です。
<variables var=""/>
nullを変数に指定するのに、以下のステートメントを使用します。
<variables var="${null}"/>