演習 3.4: データの妥当性検査

Web アプリケーションに入力されたデータの妥当性検査を行い、それが適切な型のデータか確認する必要がある場合があります。EGL では、例えば、電話番号フィールドの妥当性検査を行い、電話番号に含まれることのない英字やその他の文字ではなく、数値が入力されたことを確認することができます。また、フィールドの最小長および最大長を設定することや、フィールドを必須フィールドに設定することもできます。

この演習では、前の演習で作成した UpdateSession.jsp ページのフィールドに基本的な妥当性検査機能を追加します。Web ページにおけるフィールドの使用方法および妥当性検査方法について詳しくは、チュートリアル「EGL コードによる JSF コンポーネントの制御 」を参照してください。

望ましいプログラミングの手法として、どのフィールドが必須指定であり、どのような妥当性検査ルールが適用されるかをユーザーに示すようにすることが挙げられます。また、ユーザーが適切な情報を入力する方法を知ることができるような情報提供型のエラー・メッセージが表示されるようにしてください。

読み取り専用フィールドの設定

ページ上の「Msg」フィールドはセッション・オブジェクトの状態に関するメッセージを表示するためのものであるため、ユーザーが編集する必要はありません。その値がユーザーによって変更されないようにするための 1 つの方法は、ページ上での値の表示を入力フィールドから出力フィールドに変更することです。このセクションでは、フィールドの妥当性検査オプションを変更して、ユーザーがフィールドの値を編集するのを防ぎます。

  1. UpdateSession.jsp ページを開く。
  2. UpdateSession.jsp ページで、「Msg」入力フィールド (その横のテキスト・ラベルと間違えないでください) をクリックする。この入力フィールドには {EGLmsg} というテキストが表示されています。このテキストは、フィールドが PageHandler 内の userSession レコードの EGL 変数 msg にバインドされることを示しています。
  3. プロパティー・ビューで「振る舞い (Behavior)」タブをクリックする。
  4. コントロールを読み取り専用にする」チェック・ボックスを選択する。

必須フィールドの設定

Web ページのあるフィールドが必須指定である場合、そのフィールドに有効な値が入力されない限り、ページは実行されません。このセクションでは、UpdateSession.jsp ページの「Your name」フィールドを必須フィールドに設定します。

  1. Your name」入力フィールドをクリックする。
  2. プロパティー・ビューで「妥当性検査 (Validation)」タブをクリックする。
  3. 値を必須にする」チェック・ボックスを選択する。
  4. エラー・メッセージ・コントロールに妥当性検査エラー・メッセージを表示する (Display validation error messages in an error message control)」チェック・ボックスを選択する。入力フィールドの横にエラー・メッセージ・コントロールが表示されます。このフィールドに無効な情報が入力されると、このコントロールにエラー・メッセージが表示されます。

フィールドの長さおよび型の設定

このセクションでは、電話番号フィールドの最小長および最大長を設定し、数値のみが受け付けられるように設定します。チュートリアル「 EGL コードによる JSF コンポーネントの制御 」では、書式マスクを使用して電話番号フィールドの妥当性検査機能および振る舞いを設定する詳細な方法について学習します。

  1. ページの「Phone」入力フィールドをクリックする。
  2. プロパティー・ビューの「妥当性検査 (Validation)」タブで、「最小長」フィールドに数値 7 を入力する。
  3. 最大長」フィールドに数値 10 を入力する。
  4. 制約 (Constraint)」リストで、「数字のみ」を選択する。
  5. エラー・メッセージ・コントロールに妥当性検査エラー・メッセージを表示する (Display validation error messages in an error message control)」チェック・ボックスを選択する。

フィールドの最小値および最大値の設定

この演習では、これまで、プロパティー・ビューを使用して個々の入力フィールドの妥当性検査オプションを設定してきました。妥当性検査機能は、EGL コードと連携させることもできます。このセクションでは、EGL レコード・パーツ定義の age フィールドの最小長および最大長を設定します。そのような方法で一度レコード・パーツを編集すると、そのレコード・パーツを基に作成されるすべての変数に妥当性検査ルールが適用されるようになります。ここでは、20 から 100 までの値のみを受け入れるように、age フィールドを設定します。

  1. UpdateSession.jsp ページを右クリックして、「ページ・コードの編集」をクリックする。UpdateSession.egl ファイルが開きます。
  2. UpdateSession.egl ファイルで、次のコード行を除去する。

    age         int        {displayName = "Your age"};

  3. 除去したコードの代わりに、以下のコードを挿入する。

    age         int        {displayName = "Your age",
                            validValues = [[20,100]]};

  4. ファイルを保存して閉じる。
  5. UpdateSession.jsp ページに戻る。
  6. Your age」入力フィールドをクリックする。
  7. プロパティー・ビューの「妥当性検査 (Validation)」タブで、「エラー・メッセージ・コントロールに妥当性検査エラー・メッセージを表示する (Display validation error messages in an error message control)」チェック・ボックスを選択する。
  8. ページを保管する。

妥当性検査のテスト

  1. UpdateSession.jsp ページをサーバーで実行する。
  2. 無効な情報をフィールドに入力し、エラー・メッセージが表示されることを確認する。

演習 3.5: クライアント・サイドとサーバー・サイドの妥当性検査の比 較』に進んでください。

フィードバック
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.