Web アプリケーションに入力されたデータの妥当性検査を行い、それが適切な型のデータか確認する必要がある場合があります。EGL では、例えば、電話番号フィールドの妥当性検査を行い、電話番号に含まれることのない英字やその他の文字ではなく、数値が入力されたことを確認することができます。また、フィールドの最小長および最大長を設定することや、フィールドを必須フィールドに設定することもできます。
この演習では、前の演習で作成した UpdateSession.jsp ページのフィールドに基本的な妥当性検査機能を追加します。Web ページにおけるフィールドの使用方法および妥当性検査方法について詳しくは、チュートリアル「EGL コードによる JSF コンポーネントの制御 」を参照してください。
望ましいプログラミングの手法として、どのフィールドが必須指定であり、どのような妥当性検査ルールが適用されるかをユーザーに示すようにすることが挙げられます。また、ユーザーが適切な情報を入力する方法を知ることができるような情報提供型のエラー・メッセージが表示されるようにしてください。
ページ上の「Msg」フィールドはセッション・オブジェクトの状態に関するメッセージを表示するためのものであるため、ユーザーが編集する必要はありません。その値がユーザーによって変更されないようにするための 1 つの方法は、ページ上での値の表示を入力フィールドから出力フィールドに変更することです。このセクションでは、フィールドの妥当性検査オプションを変更して、ユーザーがフィールドの値を編集するのを防ぎます。
Web ページのあるフィールドが必須指定である場合、そのフィールドに有効な値が入力されない限り、ページは実行されません。このセクションでは、UpdateSession.jsp ページの「Your name」フィールドを必須フィールドに設定します。
このセクションでは、電話番号フィールドの最小長および最大長を設定し、数値のみが受け付けられるように設定します。チュートリアル「 EGL コードによる JSF コンポーネントの制御 」では、書式マスクを使用して電話番号フィールドの妥当性検査機能および振る舞いを設定する詳細な方法について学習します。
この演習では、これまで、プロパティー・ビューを使用して個々の入力フィールドの妥当性検査オプションを設定してきました。妥当性検査機能は、EGL コードと連携させることもできます。このセクションでは、EGL レコード・パーツ定義の age フィールドの最小長および最大長を設定します。そのような方法で一度レコード・パーツを編集すると、そのレコード・パーツを基に作成されるすべての変数に妥当性検査ルールが適用されるようになります。ここでは、20 から 100 までの値のみを受け入れるように、age フィールドを設定します。
age int {displayName = "Your age"};
age int {displayName = "Your age",
validValues = [[20,100]]};
「演習 3.5: クライアント・サイドとサーバー・サイドの妥当性検査の比較」に進んでください。