Home   Single Page

variables 要素

変数のセットを定義します。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"/>

List と Map 値と複合属性
The List and Map Values with the composite Attribute

デフォルトで、値は もし有れば、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")です。

null 値

以下の例ではvarは空の文字列です。

<variables var=""/>

nullを変数に指定するのに、以下のステートメントを使用します。

<variables var="${null}"/>

リザーブ名で変数をアサイン
Assign a Variable with a Reserved Name

リザーブ名で変数(ここでは forEach )をアサインするには、次のようにネームスペース(ZK ネームスペースなら何でも)を指定します。

<variables m:forEach="a value" xmlns:m="http://whatever.com"/>

そうすることで、forEach は繰り返し条件ではなく変数とみなされています。