イベント・ハンドラはイベントを処理するコード部分です。イベント・ハンドラを使用すると、アプリケーション内に動的なページ・フローを組み込む、あるいはビューのイベントに基づいてモデルを変更することができます。
UIXイベント・ハンドラはUIXサーブレットに登録され、UIXサーブレットの<event>
または<instance>
要素を使用して定義されます。
次の例では、このページで発生するすべてのStoreNameというイベントを処理するハンドラが登録されます。<event>
要素内の<method>
要素を使用してハンドラ・コードを指定しています。<method>
要素では、完全修飾されたJavaクラス名とメソッド名を使用してこのメソッドをコールし(Java Reflection APIを使用)、それぞれのイベントを処理します。メソッドMyClass.handleStoreNameEvent(...)
は、このページで発生するすべてのStoreNameイベントを処理するためにコールされます。
Example in UIX XML:
<page xmlns="http://xmlns.oracle.com/uix/controller"
xmlns:ctrl="http://xmlns.oracle.com/uix/controller">
<content>
<header xmlns="http://xmlns.oracle.com/uix/ui"
text="Enter Your Name">
<contents>
<form name="form1">
<contents>
<messageTextInput name="txt1" prompt="Enter Name" text="YourName"/>
<submitButton ctrl:event="StoreName" text="Submit"/>
</contents>
</form>
</contents>
</header>
</content>
<handlers>
<event name="StoreName">
<method class="MyClass" method="handleStoreNameEvent"/>
</event>
</handlers>
</page>
特定のコンポーネントで生成されたイベントのイベント・ハンドラを、このsourceパラメータを使用して登録することが可能です。コンポーネントによって、sourceパラメータの設定方法は異なります。たとえば、tableのname属性やhideShowのid属性は、これらのコンポーネントで生成されたすべてのイベントのsourceパラメータとなります。名前およびソースの両方で登録されたイベント・ハンドラは、名前のみで登録されたイベント・ハンドラより優先順位が高くなります。複数のイベント・ハンドラを異なるイベント名の下に登録したり、同一のイベント・ハンドラで異なるイベントを処理するように登録できます。
複数のソースにおける複数のイベントの単一イベント・ハンドラを、イベント名およびソースのスペース区切りリストを使用して登録することが可能です。グローバルなイベント・ハンドラを登録することもできます。これは、どのページから起動されたかにかかわらず、指定の名前のイベントを処理します。これらは特定のページに所属しないため、ページのuiXMLから登録することができません。かわりにJavaコードを使用して登録します(oracle.cabo.servlet.AbstractPageBrokerを参照してください)。登録メカニズムは、UIXサーブレットのJava APIを使用して、すべてUIXの外側から使用できます。
UIXイベント・ハンドラの詳細は、「ADF UIX開発者ガイド」の「ADF UIXでのコントローラの使用方法」を参照してください。
<compound>
、<go>
、<invoke>
、<method>
など、UIXサーブレット要素の詳細は、「UIX要素リファレンス」を参照してください。
UIXイベントについて
Oracle ADF、UIXおよびStrutsを使用するアプリケーションでのイベント処理について
Copyright © 1997, 2004, Oracle. All rights reserved.