属性の名前や、要素、プロセスの命令を除いて、JSPのように、ZUMLのどの部分でもEL表記を使うことができます。
EL表記は構文$ { expr }を使います。例えば、
<element attr1=”${bean.property}”.../> ${map[entry]} <another-element>${3+counter} is ${empty map}</another-element>
【ヒント】: emptyはマップ、集合、配列、文字列が空(null)かどうかをテストする演算子です。
【ヒント】: map[entry] はマップの要素にアクセスする方法です。つまり、Javaで言う、 map.get(entry) と同じです。
EL表記が属性の値として使われるとき、コンポーネントがその値を受け取れる限り、戻り値はどのようなオブジェクトでも構いません。たとえば、以下の表記はBooleanオブジェクトとして処理されます。
<window if="${some > 10}">
【ヒント】: ELの中の + operatorは算術です。文字列の連結処理はしません。文字列の連結は”${exprl} is added with ${expr2}”でできます。
paramとrequestScopeのような標準的な暗黙オブジェクトとselfとpageのようなZKの暗黙オブジェクトは簡単に使えるようになっています。
<textbox value="${param.who} does ${param.what}"/>
メソッドをインポートするには、次のように xel-method と呼ばれるプロセス命令を使用することが出来ます。
<?xel-method prefix="c" name="forName" class="java.lang.Class" signature="java.lang.Class forName(java.lang.String)"?> <textbox value="${c:forName('java.util.List')}"/>
EL機能をTLDファイルからインポートするために、以下のようにtaglibと呼ばれるプロセス命令が使えます。
<?taglib uri="http://www.zkoss.org/dsp/web/core" prefix="c" ?>
開発用レファレンスにEL表記の詳細が書かれています。または、JSP2.0チュートリアルかガイドを参照してください。