アクション・イベントは、ActionSource
を実装するコマンド・コンポーネントがアクティブになると発生します。たとえば、ユーザーがボタンまたはリンクをクリックすると、コンポーネントが含まれているフォームが発行され、続いてアクション・イベントが起動されます。
アクション・イベントは、ユーザー・インタフェースにのみ影響を与える場合(例: ロケールを変更し、異なるフィールド・プロンプトを表示するリンク)、またはバックエンドでのロジック処理に影響を与える場合(例: いくつかのフィールドに値を入力した後で新規注文を追加するボタン)があります。
アクション・イベントは、javax.faces.event.FacesEvent
クラスを拡張するjavax.faces.event.ActionEvent
クラスのインスタンスです。ActionEvent
インスタンスでは、イベントを生成したコンポーネントに関する情報を格納し、後でブロードキャストされるようにイベントをキューに入れます。
アクション・リスナーは、コマンド・コンポーネントによってアクション・イベントが起動されたときに通知を受けるクラスです。このリスナーによって、javax.faces.event.ActionListener
インタフェースが実装されます。アクション・リスナーには、アクション・イベントを処理するアクション・リスナー・メソッドが含まれています。
デフォルトでは、アクション・リスナーは、アプリケーションの起動フェーズの最後に通知を受けます。イベントは、コマンド・コンポーネントによって登録済のアクション・リスナーにブロードキャストされ、イベント・オブジェクトは、リスナーが参照するメソッドに渡されます。イベントは、必要に応じて、リクエスト値の適用フェーズの最後に配信されるように設定できます。この方法の詳細は、「イベントおよびimmediate属性について」を参照してください。
コマンド・コンポーネントのアクション・イベントを処理するには、次の処理を実行する必要があります。
javax.faces.event.ActionListener
インタフェースを実装するか、またはアクション・リスナーのメソッドをBeanに実装して、イベントを処理します。
f:actionListener
タグを使用)するか、またはアクション・リスナーのメソッドをコンポーネントのactionListener
属性に登録します。コンポーネントに複数のアクション・リスナーが必要な場合は、f:actionListener
タグを2つ以上使用してください。
入力コンポーネントや値の変更イベントとは異なり、エンクロージング・フォームは、コマンド・コンポーネントがアクティブになると発行されます。このため、フォームの発行に、コマンド・コンポーネントのonchange
属性を使用する必要はありません。
ActionListener
インタフェースはjavax.faces.event.FacesListener
を拡張します。リスナーの実装では、単一の引数としてActionEvent
インスタンスを使用し、アクション・イベントを処理するprocessAction(ActionEvent)
メソッドを定義する必要があります。
ActionListener
インタフェースの詳細は、javax.faces.event.ActionListener
に関するJavadocを参照するか、java.sun.comのWebページhttp://java.sun.com/j2ee/javaserverfaces/にアクセスしてください。
ActionListener
インタフェースのprocessAction(ActionEvent)
メソッドと同様に、アクション・リスナー・メソッドは、単一のActionEvent
を使用し、戻り型がvoid
のpublicメソッドであることが必要です。
アクション・リスナー・メソッドでは通常、ナビゲーション処理は処理されないことに注意してください。ナビゲーションを処理するアクション・メソッドの使用方法は、「ナビゲーションに影響を与えるアクション・メソッドおよび結果について」を参照してください。
デフォルトでは、JSFでアクション・イベントに対するリスナーが起動する順序は、次のとおりです。
f:actionListener
タグによって登録されたリスナーのコンポーネントへの追加順。
actionListener
属性によってコンポーネントに登録されたアクション・リスナーのメソッド・バインディング。
ActionListener
を介して)action
属性によってコンポーネントに設定されたアクション・メソッド・バインディング。アクション・メソッドおよびデフォルトのActionListener
の詳細は、「ナビゲーションに影響を与えるアクション・メソッドおよび結果について」を参照してください。
バッキングBean、メソッド・バインディングおよび自動コンポーネント・バインディングについて
コマンド・コンポーネントへの新規アクション・メソッドの設定
コマンド・コンポーネントへの既存アクション・メソッドの設定
コマンド・コンポーネントへのアクション結果文字列の設定
コマンド・コンポーネントへのアクション・リスナー・インスタンスの登録
コマンド・コンポーネントへの既存アクション・リスナー・メソッドの登録
アクション・リスナー・メソッドの新規作成およびコマンド・コンポーネントへの登録
Copyright © 1997, 2007, Oracle. All rights reserved.