forward="target_event_expr"forward="oringal_event=target_event_expr"
ここで target_event_expr はイベント表記です。イベント表記は特定のコンポーネントをターゲットとしたイベントを識別する目的で使用されます。これは次のフォーマット内の1つを使用できます。
event-nametarget-id.event-nameid1/id2/id3.event-name${el-expr}.event-name
これはイベントを forward するために使われます。ということは、特定のコンポーネントをターゲットとし、他のコンポーネントや他のイベント名を対象とするということです。これを forward 条件といいます。
次の例では、onCLick イベントをウィンドウのボタンに forward します。
<window id="w" use="MyWindow"> ... <button lable="Submit" forward="onClick=w.onOK"/> </window>
そして、次のように MyWindow クラス内で送信処理をハンドルできます。:
public class MyWindow extends Window { public void onOK() { //handle the submission } }
オリジナルのイベントはオプションで、省略でき onClick が想定されます。同様にターゲット ID もオプションで、省略時にはスペースオーナーが想定されます。それで、上記の例は次のように簡略化されます。
<window id="w" use="MyWindow"> ... <button lable="Submit" forward="onOK"/> </window>
複数のイベントを forward したいとき、これらの条件を forward 属性内でカンマ(,)で区切って指定することができます。
<textbox forward="onChanging=onUpdating, onChange=some.onUpdate"/>
送信された forward イベントは org.zkoss.zk.ui.event.ForwardEventクラスのインスタンスです。元のイベントは getOrigin を使って取得できます。
forward="orginalEvent=targetId1/targetId2.targetEvent(eventData)"
上記で記述したように、forward イベントにアプリケーション特有の情報を、括弧で囲んで forward 条件に追加する形で渡すことができます。情報は ForwardEvent クラスの getData メソッドを使用して取得できます。
<button forward="onCancel(abort)"/>
getData メソッドでは "abort"がリターンされるでしょう。もちろん、どのタイプのデータでも EL 表記で渡すことができます。