EGL ソース形式の PageHandler パーツ

pageHandler パーツは EGL ファイルで宣言します。これについては、『EGL プロジェクト、パッケージ、およびファイル』で説明しています。このパーツはプライマリー・パーツです。つまり、プライマリー・パーツは、ファイルの最上位にあり、ファイルと同じ名前を持っている必要があります。

pageHandler パーツの例は以下のとおりです。
// Page designer では、すべての pageHandlers が
// be in a package named "pagehandlers".
package pagehandlers ;

PageHandler ListCustomers 
  {onPageLoadFunction="onPageLoad"}  

  // 顧客テーブル・アクセス用のライブラリー
  use CustomerLib3;  

  // 顧客のリスト
	 customerList Customer[] {maxSize=100}; 

	Function onPageLoad()
		
    // 顧客を検索するための開始キー     startkey CustomerId;   		
  
    // ライブラリー呼び出しからの結果
    status int;            
		
    		// Retrieve up to 100 customer records
		startKey = 0;
		CustomerLib3.getCustomersByCustomerId(startKey, customerList, status);
		if ( status != 0 && status != 100 ) 
			setError("Retrieval of Customers Failed.");
    	end
	 end
	 Function returnToIntroductionClicked()
  		forward to "Introduction";
	 endEnd
pageHandler パーツのダイアグラムは、次のとおりです。

pageHandler パーツの構文図
PageHandler pageHandlerPartName ... end
パーツをページ・ハンドラーとして識別し、パーツ名を指定します。命名の規則については、『命名規則』を参照してください。
pageHandlerProperty
ページ・ハンドラー・プロパティー。詳細については、『ページ・ハンドラーのプロパティー』を参照してください。
use dataTablePartName, use libraryPartName
データ・テーブルまたはライブラリーのアクセスを簡略化する使用宣言。詳細については、『使用宣言』を参照してください。
private
Web ページを表示する JSP からは、変数、定数、または関数を使用できないことを示します。private という用語を省略すると、変数、定数、または関数を、Web ページ上のコントロールにバインドできます。
dataItemName
データ項目 (変数) の名前。命名の規則については、『命名規則』を参照してください。
primitiveType
データ項目に割り当てられるプリミティブ型。
length
構造体項目の長さ (整数)。構造体項目に基づくメモリー領域の値には、指定された数の文字または数字が含まれます。
decimals
decimals は、数値タイプ (BIN、DECIMAL、NUM、NUMC、または PACF) に対して指定できます。これは、小数点以下の桁数を表す整数です。小数部の桁の最大数は、18 または length で宣言された桁数の小さいほうです。小数点は、データとともに保管されません。
dataItemPartName
データ項目の形式のモデルになっている dataItem パーツ名。これについては、『typeDef』で説明しています。dataItem パーツは、pageHandler パーツに対して可視になっている必要があります。これについては、『パーツの参照』で説明しています。
itemProperty
項目のプロパティー。詳細については、『ページ項目のプロパティー』を参照してください。
recordName
レコードの名前 (変数)。命名の規則については、『命名規則』を参照してください。
recordPartName
レコードの形式のモデルになっているレコード・パーツ名。これについては、『typeDef』で説明しています。レコード・ パーツは、pageHandler パーツに対して可視になっている必要があります。これについては、『パーツの参照』で説明しています。
recordProperty
レコード・プロパティーのオーバーライド。レコード・プロパティーについての詳細は、recordPartName のレコードのタイプに応じて、以下の説明のいずれかを参照してください。
itemName
オーバーライドしようとしているプロパティーを持つレコード項目の名前。
itemProperty
項目プロパティーのオーバーライド。詳細については、『EGL プロパティーとオーバーライドの概要』を参照してください。
constantName literal
定数の名前および値。命名の規則については、『命名規則』を参照してください。
arrayName
レコードまたはデータ項目の動的または静的配列の名前。このオプションを使用する場合、 右側の他のシンボル (dataItemPartNameprimitiveType など) は配列の各要素を参照します。
functionPart
埋め込み関数。構文についての詳細は、『EGL ソース形式の関数パーツ』を参照してください。

ページ・ハンドラーのプロパティー

ページ・ハンドラーのプロパティーは以下のとおりですが、これらはオプションです。
alias = "alias"
生成された出力の名前に取り込まれるストリング。別名 (alias) を指定しなかった場合は、pageHandler パーツ名が代わりに使用されます。
allowUnqualifiedItemReferences = noallowUnqualifiedItemReferences = yes
構造体項目のコンテナー (構造体項目を保持しているデータ・テーブル、レコード、または書式) の名前を除外しても、コードが構造体項目を参照できるようにするかどうかを指定します。例えば、次のレコード・パーツについて考えましょう。
  Record aRecordPart type basicRecord
    10 myItem01 CHAR(5);
    10 myItem02 CHAR(5);
  end
以下の変数はそのパーツに基づいています。
  myRecord aRecordPart;
allowUnqualifiedItemReferences のデフォルト値 (no) を受け入れる場合、以下の代入のように myItem01 を参照するときにレコード名を指定する必要があります。
  myValue = myRecord.myItem01;
ただし、allowUnqualifiedItemReferences プロパティーを yes に設定した場合は、次に示すように、レコード名を指定する必要はありません。
  myValue = myItem01;

デフォルト値 (最良実例) を受け入れることをお勧めします。コンテナー名を指定することにより、 コードを読み取る人と EGL に対するあいまいさを減らすことができます。

EGL は規則セットを使用して変数名または項目名が参照するメモリー領域を決定します。 詳細については、『変数および定数の参照』を参照してください。

handleHardIOErrors = yes, handleHardIOErrors = no
システム変数 VGVar.handleHardIOErrors にデフォルト値を設定します。 このシステム変数は、try ブロック内の入出力操作でハード・エラーが発生した後に、プログラムを継続して実行するかどうかを制御します。 このプロパティーのデフォルト値は yes であり、この変数は 1 に設定されます。

詳細については、『VGVar.handleHardIOErrors』および『例外処理 』を参照してください。

includeReferencedFunctions = noincludeReferencedFunctions = yes
ページ・ハンドラー内、およびページ・ハンドラーがアクセスするライブラリー内にない各関数のコピーを、ページ・ハンドラー Bean に含めるかどうかを示します。デフォルト値は no です。これは、推奨されるように開発時に以下の規則に従う場合、 このプロパティーを無視することができることを意味します。
  • 共用関数をライブラリーに収める
  • ページ・ハンドラー内に非共用関数を収める

ライブラリーに収められていない共用関数を使用している場合は、 プロパティー includeReferencedFunctionsyes に設定する場合にのみ生成が可能です。

localSQLScope = no, localSQLScope = yes
SQL 結果セットおよび作成されたステートメントの識別子が、pageHandler に対してローカルである (これがデフォルトです) かどうかを示します。 値 yes をそのまま使用すると、pageHandler から呼び出される異なる複数の プログラムが、同じ識別子を独自に使用することができます。

no を指定すると、識別子はその実行単位全体で共用されます。 現行のコード内で作成された識別子は、その他のコード内でも使用可能です。ただし、その他のコードは、localSQLScope = yes を使用して、これらの識別子の使用をブロックすることができます。また現行のコードは、他のコードで 作成された識別子を参照できます。ただし、参照できるのは、既にその他のコードが実行され、アクセスをブロックしなかった場合だけです。

SQL 識別子を共用する効果は、次のとおりです。
  • pageHandler または呼び出し先プログラムで結果セットを開き、 別のコードでその結果セットから行を取得できる。
  • 1 つのコードで SQL ステートメントを作成し、そのステートメントを別のコードで実行できる。
msgResource = "logicalName"
エラー・メッセージ表示で使用される Java™ リソース・バンドルまたはプロパティー・ファイルを識別します。 リソース・バンドルまたはプロパティー・ファイルの内容は、キーと関連値のセットで構成されています。

プログラムによる EGL システム関数 sysLib.setError の呼び出しに応答して、特定の値が表示されます(呼び出しにその値のキーの使用が含まれる場合)。

onPageLoadFunction = "functionName"
関連 JSP が最初に Web ページを表示するときに制御を受信するページ・ハンドラー機能の名前。 この機能は、ページに表示されるデータの初期値をセットアップする場合に使用されます。このプロパティーは 、以前の onPageLoad プロパティーです。
scope = session, scope = request
pageHandler データが Web ページに送信された後に発生することを指定します。
  • 有効範囲が session (デフォルト) に設定されている場合、pageHandler 変数値は、そのユーザー・セッションの間保持されますが、ユーザーが後で同じ pageHandler にアクセスしても、OnPageLoad 関数は再度呼び出されません。
  • 有効範囲が request に設定されている場合、pageHandler 変数値が失われ、ユーザーが同じページ・ハンドラーにアクセスすると、OnPageLoad 関数が再度呼び出されます。

このプロパティーを明示的に設定して、ユーザーの決定を文書化することをお勧めします。この決定は、Web アプリケーションの設計および操作に大きな影響を及ぼします。

throwNrfEofExceptions = no, throwNrfEofExceptions = yes

ソフト・エラーにより例外がスローされるかどうかを指定します。 デフォルトは no です。背景情報については、『例外処理』を参照してください。

title = "literal"
title プロパティーは、バインド・プロパティーです。つまり、Page Designer で作業をしている場合は、割り当て済みの値がデフォルトとして使用されます。このプロパティーは、ページのタイトルを指定します。

literal は、引用符付きストリングです。

validationBypassFunctions = ["functionNames"]
1 つ以上のイベント・ハンドラーを示します。これは、JSP 内のボタン制御 に関連付けられたページ・ハンドラー関数です。各関数名はコンマで区切られます。

このコンテキストでイベント・ハンドラーを指定すると、イベント・ハンドラーであるか、またはそれに関係するボタンまたはハイパーテキスト・リンクをクリックしたときに、EGLランタイムは、入力フィールドおよびページの検証をスキップします。 このプロパティーは、現在のページ・ハンドラー処理を終わらせて別の Web リソースに制御を転送する ユーザー・アクションを受信する場合に役立ちます。

validatorFunction = "functionName"
ページ・ハンドラーのバリデーター関数を示します。これは、すべての項目バリデーターが呼び出された後に呼び出されます。これについては、『EGL を使用してビルドされた Web アプリケーションの検証』で説明します。このプロパティーは、以前の validator プロパティーです。

runValidatorFromProgram プロパティーの値によって、バリデーター関数が UI レコード Bean 内にあるのか、UI レコード Bean からデータを受け取るプログラム内にあるのかが決まります。

view = "JSPFileName"
ページ・ハンドラーにバインドされている Java Server Page (JSP) の名前、およびその JSP に至るサブディレクトリー・パスを示します。JSPFileName は、引用符付きストリングです。

デフォルト値は、ファイル拡張子 .jsp が付いたページ・ハンドラーの名前です。このプロパティーを指定する場合、ファイル拡張子がある場合には、それを含めてください。

ページ・ハンドラーを保管または生成する場合、同じ名前の JSP ファイル (view プロパティーで指定した名前) が適切な フォルダー (フォルダー WebContent¥WEB-INF) にない限り、EGL は後続のカスタマイズに対する プロジェクトに JSP ファイルを追加します。 EGL は JSP を上書きしません。

ご利用条件 | フィードバック
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.(C) Copyright IBM Japan 2005.