onPreRenderFunction
onPreRenderFunction JSF ハンドラー・プロパティーを使用すると、メモリー内のページをレンダリングする前にページ・データを更新する関数の名前の指定できます。
このプロパティーには以下の特性があります。
- ページが最初に表示されたときに、on construction 関数 (定義されている場合) の後に実行されます。
- これはページがレンダリングされるたびに実行されますが、データ変換、妥当性検査、または setError 文など、エラー状態が原因でページが再表示された場合を除きます。
- 指定した関数のパラメーターの数と型は (使用する場合)、on construction と postrender の関数の数と型に一致しなければなりません。そうでなければ、検証エラーになります。
- JSF ハンドラーの on construction、prerender、および postrender の各関数は、 forward 文または、URL 内の照会ストリングから渡されたパラメーターにアクセスすることができます。 パラメーターは、要求データとして存続します。
- prerender 関数でパラメーターが定義され、その関数の呼び出し時に引数が渡されない場合、そのパラメーターはデフォルト値とみなされます。 例えば、数値パラメーターの場合は 0、文字パラメーターの場合は空ストリング、参照パラメーターの場合は NULL 値にデフォルト設定されます。 これは、検証エラーがページ上で発生し、ページが再表示される前に関数が呼び出された場合に生じると思われます。
- forward 文に対して引数が指定され、その引数の数および型が関数で定義されたパラメーターと一致しない場合は、妥当性検査でエラーのフラグは設定されません。
- 関数がパラメーターなしで定義された場合、forward 文またはリンクによって関数に渡された引数はすべて無視されます。
- 関数は、ページ内のすべてのコンポーネントにアクセスできます。
以下の関連プロパティーと比較してください。
- onConstructionFunction。これは、ページ Bean がインスタンス化されたときにのみ実行される関数を指定します。
- onPostRenderFunction。これは、メモリー内のページがレンダリングされた後 (ただし、ページが画面に出力される前) に実行される関数を指定します。
制限
- コンポーネント・ツリーのアクセスで説明しているとおり、prerender 関数は JSF コンポーネント・ツリーにアクセスできません。
- prerender 関数は、sysLib.setError() を使用してコンポーネントに対するエラー・メッセージを設定することができません。 ただし、この関数は sysLib.setErrorForComponentID() を使用することができます。
- prerender 関数は、forward to URL ステートメントを使用できますが、forward to label ステートメントは使用できません。
例
次の例は、JSF ハンドラー・パーツのコンテキストでのプロパティーを示しています。
Handler handler01 type JSFHandler
{ onPreRenderFunction=refreshVars }
...
Function refreshVars()
...
end
end
互換性
| データ項目 | JSF ハンドラー | VGUI レコード | コンソール UI | テキスト書式 Java™ | テキスト書式 COBOL | 印刷書式 Java | 印刷書式 COBOL |
|---|---|---|---|---|---|---|---|
| なし | あり | なし | なし | なし | なし | なし | なし |