JSF コンポーネントに対して、イベント・ハンドラーの働きをする JavaScript™ 関数を、
割り当てたり除去したりすることができます。このコンテキストでのイベント・ハンドラーとは、
ページ上で特定のイベントが発生するときに呼び出される JavaScript 関数です。例えば、onClick
イベント・ハンドラーを使用して、テキスト入力フィールドに関数を割り当てることができます。
ブラウザーでこのフィールドをクリックすると、onClick イベント・ハンドラーとして定義された関数が実行されます。
イベント・ハンドラーとして使用される JavaScript 関数は、ページ自体に含まれる <script>
タグか、そのページにリンクされているスクリプト・ファイルで、そのページ上で使用できなければなりません。EGL 関数は、
JSF コンポーネントのイベント・ハンドラーとしては使用できません。
このタスクには次のような前提条件があります。詳しくは、
『
pageHandler から JSF コンポーネントへのアクセス』を参照してください。
- ご使用の EGL Web プロジェクトに、JSF コンポーネント・インターフェースのサポートがなければなりません。
『EGL Web プロジェクトへの JSF コンポーネント・インターフェース・サポートの追加』を参照してください。
- Faces JSP のページ・コード・ファイルに次の import 文が含まれている必要があります。
import com.ibm.egl.jsf.*
- pageHandler 内で、UIViewRoot 型の変数を宣言する必要があります。
- pageHandler プロパティー viewRootVar で、UIViewRoot 変数の名前を指定する必要があります。
イベント・ハンドラーを JSF コンポーネントに割り当てたり JSF コンポーネントから除去したりするには、
以下のステップを実行します。
- pageHandler の関数内のブランク行で、Ctrl + Shift + Z を押す。
ページ上の JSF コンポーネントを表示する「EGL ソース・アシスタント」ウィンドウが開きます。
- 「EGL ソース・アシスタント」ウィンドウで、アクセスしたい JSF イメージ・コンポーネントを選択する。
- 「OK」をクリックする。
EGL ソース・アシスタントが、
2 行の EGL コードを pageHandler に追加します。第 1 行では、選択した JSF コンポーネントに一致する型の EGL 変数が
定義されます。第 2 行では、その変数が JSF コンポーネントに関連付けられます。
例えば、JSF 入力テキスト・コンポーネントにアクセスするコードは、
次のようになります。
text1 HtmlInputText;
text1 = myViewRoot.findComponent("form1:text1");
- ソース・アシスタントで作成した EGL 変数を使用して、
イベント・ハンドラーを割り当てたり除去したりする。
例えば、JavaScript 関数 myFunction()
をテキスト・フィールドの onClick イベント・ハンドラーとして割り当てるには、次のコードを追加します。
text1.setOnclick("myFunction");
イベント・ハンドラーを JSF コンポーネントから除去するには、イベント・ハンドラーとして
ブランク・ストリングを割り当てます。
text1.setOnclick("");