onPostRenderFunction

onPostRenderFunction JSF ハンドラー・プロパティーを使用すると、メモリー内の HTML をレンダリングした直後 (ただし、画面にページを表示する前) に実行される関数の名前を指定することができます。このプロパティーには以下の特性があります。
  • これはページがレンダリングされるたびに実行されますが、これには、データ変換、妥当性検査、または setError 文など、エラー状態が原因でページが再表示された場合が含まれます。
  • 指定した関数のパラメーターの数と型は (使用する場合)、on construction と prerender の関数の数と型に一致しなければなりません。そうでなければ、検証エラーになります。
  • JSF ハンドラーの on construction、prerender、および postrender の各関数は、 forward 文または、URL 内の照会ストリングから渡されたパラメーターにアクセスすることができます。 パラメーターは、要求データとして存続します。
  • postrender 関数でパラメーターが定義され、その関数の呼び出し時に引数が渡されない場合、そのパラメーターはデフォルト値とみなされます。 例えば、数値パラメーターの場合は 0、文字パラメーターの場合は空ストリング、参照パラメーターの場合は NULL 値にデフォルト設定されます。 これは、検証エラーがページ上で発生し、ページが再表示される前に関数が呼び出された場合に生じると思われます。
  • forward 文に対して引数が指定され、その引数の数および型が関数で定義されたパラメーターと一致しない場合は、妥当性検査でエラーのフラグは設定されません。
  • 関数がパラメーターなしで定義された場合、forward 文またはリンクによって関数に渡された引数はすべて無視されます。
  • 関数は、ページ内のすべてのコンポーネントにアクセスできます。
以下の関連プロパティーと比較してください。
  • onConstructionFunction。これは、ページ Bean がインスタンス化されたときにのみ実行される関数を指定します。
  • onPreRenderFunction。これは、メモリー内のページがレンダリングされる前に実行される関数を指定します。

制限

  • コンポーネント・ツリーのアクセスで説明しているとおり、postrender 関数は、on construction 関数および prerender 関数とは違って JSF コンポーネント・ツリーにアクセスできます。 しかし、postrender 関数はページがレンダリングされてブラウザーに送信された後に呼び出されるため、ページの変更点は、そのページが最新表示されるまでユーザーには見えません。
  • postrender 関数は、forward to URL ステートメントは使用できますが、forward to label ステートメントは使用できません。

次の例は、JSF ハンドラー・パーツのコンテキストでのプロパティーを示しています。

Handler  handler01  type JSFHandler
        { onPostRenderFunction=saveVars }
...
  Function saveVars()
  ...
  end
end

互換性

表 1. onPostRenderFunction プロパティーのサポート
データ項目 JSF ハンドラー VGUI レコード コンソール UI テキスト書式 Java™ テキスト書式 COBOL 印刷書式 Java 印刷書式 COBOL
なし あり なし なし なし なし なし なし