イベント処理について

アプリケーションでのユーザー・イベントの例には、ボタンまたはリンクのクリック、メニューまたはリストからの項目の選択、フィールドの値の変更などがあります。イベントによって、ユーザー・インタフェースの変更がトリガーされる場合、またはバックエンド・アプリケーション・コードが起動される場合(あるいはその両方)があります。

アプリケーションでユーザー・イベントに応答できるようにするには、通常、イベント・ハンドラをコンポーネントに登録します。JavaServer Faces(JSF)でのイベント処理は、JavaBeansイベント・モデルに基づいており、コンポーネントによって生成されたイベントの処理にはイベント・クラスとイベント・リスナーが使用されます。すべてのJSFイベントがjavax.faces.event.FacesEventクラスを拡張します。

イベントの通知を受けるコンポーネントには、javax.faces.event.FacesListenerインタフェースの実装が登録されている必要があります。リスナーの実装では、イベントを処理するメソッドが1つ宣言されます。また、リスナー・クラスを実装するかわりに、メソッドをバッキングBeanに実装してイベントを処理することもできます。

ボタンのクリックなどのユーザー・イベントが発生すると、コンポーネントでは、FacesEventを拡張するイベント・オブジェクトが作成されます。このイベント・オブジェクトによって、イベントに関する情報が格納され、イベントを生成したコンポーネントが識別されます。イベントはイベント・キューにも追加されます。適切な時期に、JSFは、コンポーネントに対して、登録されたリスナーにイベントをブロードキャストするように指示し、リスナーは、イベントを処理するリスナー・メソッドを起動します。JSFライフサイクル・フェーズにおけるイベント作成、キューイングおよびブロードキャストの時期に関する情報は、「イベントおよびJSFライフサイクルについて」を参照してください。

JSFでサポートされているイベント・タイプは、次のとおりです。

ADF Facesコンポーネントでは、ReturnEventLaunchEventなど、他のイベントがサポートされます。「ADF Facesイベントおよびリスナーについて」を参照してください。

標準コンポーネントとカスタム・コンポーネントの比較

アプリケーション開発者は、標準コンポーネントまたはカスタム・コンポーネントに対するイベントを処理するために、次のいずれかの処理を実行できます。

カスタム・コンポーネントについては、次の処理も実行する必要があります。

カスタム・コンポーネントに対するイベント・クラスとメソッドの記述方法の詳細は、javax.faces.eventに関するJavadocを参照するか、次に示すURLのjava.sun.comのWebページにアクセスしてください。

http://java.sun.com/j2ee/javaserverfaces/

クライアント側のJavaScript

イベント処理にクライアント側のJavaScriptを使用するために、JSFでは、ほとんどのJSF HTMLタグおよびADF Facesコンポーネント・タグに対するDHTMLイベント属性をサポートしています。プロパティ・インスペクタによって、次のDHTMLイベント属性を挿入できます。


イベントおよびimmediate属性について
JSFでのイベントおよびイベント・リスナーの使用