TOPシステム開発> バリデータの設定
まるごとサーバサイドJava
JDeveloperで学ぶJSF入門

第8回:バリデータの設定とメッセージの日本語化

著者:WINGSプロジェクト  佐藤治夫(株式会社ビープラウド)、
小泉守義

監修:山田祥寛   2006/8/17
1   2  3  次のページ
バリデータの設定

   今度は入力画面の項目について、次のような制約を課すバリデータを設定してみましょう。
  • すべての項目の入力が必須
  • 日付入力欄に入力できるのは正の整数だけ
  • 誕生月入力欄に入力できるのは1から12までの整数だけ
  • 誕生日入力欄に入力できるのは1から31までの整数だけ

表1:今回のバリデータの設定

   ではこれから、このような制約に反する場合、各項目の下にエラーメッセージが表示されるようページを書き換えていきます。


コンポーネントIDの設定

   どの入力項目でエラーが発生したのかを識別できるように、各入力コンポーネントのID属性を表2のように設定しておきます。

項目名 コンポーネントのID
誕生年 birthYear
誕生月 birthMonth
誕生日 birthDay
性別 sex
血液型 bloodType

表2:コンポーネントIDと項目名の対応


メッセージボックスの配置

   入力テキストボックスの下にエラーメッセージが表示されるようコンポーネント・パレットから「Message」コンポーネントをドラッグして配置します。配置の際に表示される「Messageの作成」ダイアログでは、どのコンポーネントに対してエラーメッセージを表示させるのかを指定するため、for属性に、前項で設定したコンポーネントIDを記述します。

   日付入力欄は3つの入力テキストにまたがっているため、1つのメッセージボックスにエラーメッセージを表示させることができません。そこで、パネルグループの下に年、月、日の順にメッセージボックスを並べることにします。


required属性の設定

   各入力項目を必須、もしくは任意となるよう指定するには、入力コンポーネントのrequired属性を変更します。required属性に「true」を指定すると、入力されていない状態でアクションイベントを発生させるとエラーが出るようになります。


バリデータの指定

   ある入力データが整数で、かつ特定の範囲内かどうかを判定するバリデータとして<f:validateLongRange>が標準で用意されています。これをバリデートしたいコンポーネントの中に子要素として挿入することで、目的の入力制約を達成することができます。

   バリデータを指定したいコンポーネントを構造ペインより指定し、コンポーネント・パレットでプルダウンメニューから「JSF Core」カテゴリを選択したあと、「ValidateLongRange」コンポーネントをドラッグして、任意のコンポーネント上に配置します。すると、挿入されたバリデータがエディタ上で選択された状態になるので、ここで属性を指定します。minimum属性が範囲の下限、maximum属性が範囲の上限となっています。

   図1は、birthMonth入力テキストコンポーネントに指定した<f:validateLongRange> バリデータを設定している様子です。

birthMonthに指定したバリデータ
図1:birthMonthに指定したバリデータ

1   2  3  次のページ

著者:WINGSプロジェクト 佐藤治夫(株式会社ビープラウド)、小泉守義 監修:山田祥寛
著者プロフィール
著者:WINGSプロジェクト 佐藤治夫(株式会社ビープラウド)、
小泉守義
監修:山田祥寛

WINGSプロジェクトは、有限会社WINGSプロジェクト(代表取締役山田祥寛)が運営するライティング・チーム。海外記事の翻訳から、主にサーバサイド分野の書籍/雑誌/Web記事の執筆、講演、アプリケーション開発などを幅広く手がける。2006年7月時点での登録メンバーは20名で、現在も一緒に執筆をできる有志を募集中。執筆に興味のある方は、どしどし応募いただきたい。


INDEX
第8回:バリデータの設定とメッセージの日本語化
バリデータの設定
  バリデータ動作のテスト
  JDeveloperのバリデータメッセージの日本語化