Interstage Studio ユーザーズガイド |
目次 索引 |
第5章 ビュー | > 5.11 UIマネージャビュー | > 5.11.1 UIマネージャビューの機能 | > 5.11.1.1 イベントが発生した場合の処理の設定 |
イベントリスナは、以下の条件を満たすJSFのUIコンポーネントに設定することができます。
イベントリスナを設定できる具体的なUIコンポーネントのタグについては、"UIマネージャビューで設定できるタグ一覧"を参照してください。
イベントリスナを設定するためには、UIマネージャビューの左側にあるツリーから[イベント] > [イベントリスナの設定]を選択します。以下にイベントリスナ設定画面で設定できる項目を説明します。
項目 |
説明 |
---|---|
なし |
イベントリスナの設定を行わない場合に選択します。 |
イベント発生時にメソッドを呼ぶ |
イベントが発生した場合にメソッドを呼ぶようにする場合に選択します。 |
Managed Bean名 |
イベントが発生した場合に呼ばれるメソッドを追加するManaged Beanの名前を指定します。 |
メソッド名 |
イベントが発生した場合に呼び出すメソッド名を指定します。 |
追加 |
Managed Beanに、上記の[メソッド名]で指定したメソッドを追加します。 |
リスナクラスを設定する |
リスナクラスをイベントリスナとして設定する場合に選択します。 |
クラス名 |
リスナクラスのクラス名を指定します。 |
参照 |
クラスを選択するダイアログボックスを表示します。 |
生成 |
新規ファイルを追加し、リスナクラスを作成します。 |
各項目で設定できる内容を、具体的に説明します。
UIコンポーネントのactionListener、またはvalueChangeListener属性にメソッドが指定されます。メソッドは以下のように指定されます。
#{([Managed Bean名]で入力または選択されたManaged Bean名).([メソッド名]で入力した文字列)}
Managed Beanはデータやメソッドが格納・設定されているJavaBeansです。JavaBeansをManaged Beanとしてfaces-config.xmlに登録することで使用できます。JavaBeansをfaces-config.xmlに登録する方法については、"Managed Beanリストビュー"を参照してください。
faces-config.xmlにすでに指定してあるManaged Beanは、[Managed Bean名]のドロップダウンリストから選択することができます。また、新規の場合には、直接[Managed Bean名]にManaged Bean名を入力します。
ボタンなどコマンドが発生するコンポーネントをJSPエディタで選択している場合:
例) <h:commandButton actionListener="#{__myBean.nextAction}"/>
テキストなど入力のできるコンポーネントをJSPエディタで選択している場合:
例) <h:inputText valueChangeListener="#{__myBean.valueChange}"/>
[Managed Bean名]で指定された名前のManaged Beanがfaces-config.xmlに指定されていない場合には、faces-config.xmlに、Managed Beanとして設定が追加されます。また、[Managed Beanの追加]ダイアログボックスで指定した名前のクラスソースが作成されます。
ボタンなどコマンドが発生するコンポーネントをJSPエディタで選択している場合:
例) public String nextAction(ActionEvent event) { }
テキストなど入力のできるコンポーネントをJSPエディタで選択している場合:
例) public void valueChange(ValueChangeEvent event) { }
Managed Beanの追加と設定については、"Managed Beanの追加/編集"を参照してください。
UIコンポーネントのタグの子要素として、f:actionListener、またはf:valueChangeListenerタグが追加されます。f:actionListener、f:valueChangeListenerタグのtype属性に、パッケージの付いたクラス名が指定されます。
例) <h:commandButton> <f:actionListener type="myApp.MyHandler"/> </h:commandButton>
例) <h:inputText> <f:valueChangeListener type="myApp.MyHandler"/> </h:inputText>
パッケージ、クラス名を入力後に[生成]をクリックすると新規ファイルを作成し、設定したクラスが追加されます。実際に生成されるソースには、StateHolderインタフェースが実装されていますが、以下の例では省略しています。
例) package myApp; public class MyHandler implements ActionListener { public void processAction(ActionEvent event) throws AbortProcessingException { } }
例) package myApp; public class MyHandler implements ValueChangeListener { public void processValueChange(ValueChangeEvent event) throws AbortProcessingException { } }
[追加] 、[生成]をクリックしてJavaソースファイルにメソッドやクラスを追加する場合には、以下の事項に注意してください。
- 一度Javaソースに追加したメソッドやクラスは、再度UIマネージャビューで名前を変更しても変名されません。UIマネージャビューで変名されたメソッドやクラスは新規に追加されます。以前のメソッド、クラスは削除されません。
- すでに存在するメソッドやクラスを設定した場合には、新たに作成せず、既存のメソッドやクラスにフォーカスが設定されます。
UIマネージャやコンテキストメニューを操作して追加されるJavaのソースファイルには、よく使用する処理があらかじめ記述してあります。
- メソッドなどを追加したManaged Beanのソースファイルには、Managed Beanを取得する処理などが記述されています。これらの処理はJSPページが持つデータを操作するために使用できます。
- ActionListenerなどのリスナクラスは、StateHolderインタフェースを実装しています。このインタフェースはリクエスト間でJSPページの状態を保持するためのメソッドを提供しています。
目次 索引 |