setError()
sysLib.setError() システム関数は、以下の複数の候補となるコンテナーのいずれかとメッセージを関連付けます。
- JSF ハンドラーのフィールド
- VGUIRecord のフィールド
- JSF ハンドラー自体
- JSF ハンドラーがこの関数を呼び出す場合、メッセージは、JSP の message または messages タグの位置に配置されます。
- VGWebTransaction プログラムがこの関数を呼び出す場合、メッセージは、JSP の関連フィールドのロケーションに配置されます。
関連する Web ページが表示されたときに、メッセージが表示されます。
検証機能が sysLib.setError() を呼び出した場合、この機能の終了時に Web ページが自動的に再表示されます。
『構文』で示されている関数の 3 つのシグニチャーのうち最初のシグニチャーは、JSF ハンドラーと VGWebTransaction プログラムのいずれでも有効ですが、2 つ目と 3 つ目は JSF ハンドラーでのみ有効です。
複数のメッセージを 1 つのフィールドまたは JSF ハンドラーと関連付けることができます。 JSF ハンドラーが forward ステートメントを実行するか、VGWebTransaction プログラムが transfer ステートメントまたは show ステートメントを実行すると、メッセージは失われます。
JSF ハンドラー の onPostRenderFunction プロパティーで指定される関数では、sysLib.setError() を使用できますが、onPostRenderFunction プロパティーまたは onConstructionFunction プロパティーで指定される関数では使用できません。
構文
sysLib.setError(
fieldInError anyPageVariable in,
msgKey STRING in
[, msgInsert STRING in])
sysLib.setError(
this enumerationThis in,
msgKey STRING in
{, msgInsert STRING in})
sysLib.setError(msgText STRING in)
- fieldInError
- sysLib.setError() が JSF ハンドラーから発行されている場合、fieldInError は、Web ページ上のコンポーネントにバインドされる JSF ハンドラーの変数です。
sysLib.setError が VGWebTransaction プログラムから発行されている場合、fieldInError は、show ステートメントまたは converse ステートメントで指定されている VGUI レコード内か、プログラムの inputUIRecord 内のフィールドです。
- this
- sysLib.setError() 呼び出しを発行する JSF ハンドラーを参照します。 この場合、メッセージはフィールド固有ではなく、JSF ハンドラーそのものに関連付けられます。 this について詳しくは、「this」キーワードを参照してください。
- msgKey
- STRING 型との代入互換性のある任意の変数または式を入力できます (EGL における代入の互換性を参照)。 msgKey は、実行時に使用されるメッセージ・リソース・バンドルまたはプロパティー・ファイルにキーを指定します。 キーがブランクの場合、メッセージはすべてのメッセージを連結したものとなります。
- msgInsert
- STRING 型との代入互換性のある任意の変数または式を入力できます (EGL における代入の互換性を参照)。
msgInsert は、出力メッセージに挿入されます。
メッセージ・テキスト内の置換シンボルは、次の例のような中括弧で囲まれた整数です。
Invalid file name {0} - 挿入の配列を使用する sysLib.getMessage() と異なり、sysLib.setError() では、単一の msgInsert ストリングのみを使用できます。
- msgText
- STRING 型との代入互換性のある任意の変数または式を入力できます (EGL における代入の互換性を参照)。 これは、Web ページと関連付けられたメッセージのテキストです。
例
次の例は、メッセージ・ファイル errorMessages_en_US.properties からの項目です。
badname = The name you entered, {0}, is not valid.
userName STRING = getUserName(); // 入力を要求します
rc = validateUserName(userName);
if (rc < 0)
SysLib.setError( SysLib.getMessage( "badname", userName ) );
end
互換性に関する考慮事項
| プラットフォーム | 問題 |
|---|---|
| JavaScript 生成 | 関数 sysLib.setError() はサポートされていません。 |
| JSF ハンドラー | msgTable 型の DataTable でのメッセージの挿入がサポートされています。最初の挿入は {0} です。 |
| Web トランザクション | msgTable 型の DataTable でのメッセージの挿入がサポートされています。最初の挿入は {1} です。 |