UIXイベント・ハンドラについて

イベント・ハンドラはイベントを処理するコード部分です。イベント・ハンドラを使用すると、アプリケーション内に動的なページ・フローを組み込む、あるいはビューのイベントに基づいてモデルを変更することができます。

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.