Faces 入力コンポーネントへの妥当性検査の追加

すべての Faces 入力コンポーネントに、妥当性検査機能を設定できます。 例えば、「日付/時刻の入力」コンポーネントに、 最小値を「2003/01/01」、最大値を「現在」と設定して妥当性検査を設定できます。
入力コンポーネントに妥当性検査を追加する前に、以下を実行します。
  1. 動的 Web プロジェクトを作成します。
  2. JSF 使用可能化 JSP ファイルを作成します。
入力コンポーネントに妥当性検査を追加するには、以下を実行します。
  1. 入力コンポーネントの「プロパティー」ビューで、リストから次のフォーマットの 1 つを選択します。
    • ストリング - 入力が、テキスト・ストリングの書式であることを指定します。 入力ストリング・コンポーネントに妥当性検査を追加することについて詳しくは、オンライン・ヘルプ・トピックの『入力ストリング・コンポーネントへの妥当性検査の追加』を参照してください。
    • 数値 - 入力が、数値の書式であることを指定します。
    • 日付/時刻 - 入力が、日付または時刻 (あるいはその両方) の書式であることを指定します。
    • マスク - 入力が、特定の値を選択的に含む方法、または除外する方法でフィルター処理されることを指定します。
    書式を選択したら「プロパティー」ビューで、使用可能なオプションからさらに書式を構成できます。
  2. サーバー上のこのフィールドに入力された値の妥当性検査を行うには、「プロパティー」ビューの「妥当性検査」タブをクリックします。
    1. ユーザーに値を入力するよう要求するには、「値を必須にする」を選択します。
    2. 妥当性検査には 2 つのオプションがあります。
      • 単純妥当性検査の使用 - ユーザーは、入力する最小文字数および最大文字数を設定できます。 サーバーに送信されると、入力に対して妥当性検査が行われ、入力が範囲内にあるかどうかが確認されます。 「制約」ドロップダウンにより、ユーザーは事前定義した正規表現のセットから選択できます。 デフォルトはブランク (制約なし) です。「カスタム検証コードを作成/編集するには、ここをクリック」を使用して、 カスタム正規表現を定義します。
      • 拡張妥当性検査の使用 - ユーザーは、JSF 式の構文を使用して妥当性検査を定義できます。制約を定義する場合は、標準の Java™ または Javascript 正規表現構文を使用できます。
    3. 入力コンポーネントで妥当性検査がエラーになった場合にエラー・メッセージを表示する「エラーの表示」 コンポーネントを自動的に作成するために、 「エラー・メッセージ・コントロールに検証エラー・メッセージを表示」を選択します。
    オプションで、「カスタム検証コードを作成/編集するには、ここをクリック」を選択し、 「クイック編集」ビューに切り替えてカスタム検証コードを作成します。
  3. クライアント上のこのフィールドに入力された値の妥当性検査を行うには、「プロパティー」ビューの「振る舞い」タブをクリックします。
    1. 「ブラウザーでフィールド値を検証」を選択します。
    2. 「onblur アクション」および「onfocus アクション」タブで、「成功時」および「失敗時」について、「CSS クラスの適用」フィールドのクラスを選択し、「アクションの実行」リストからアクションを選択します。
    オプションで、「QuickEdit ビューで、onsuccess、onerror、onfocussuccess および onfocuserror イベントに振る舞いを追加することができます」をクリックし、カスタムの振る舞いコードを作成します。
  4. パレット上の「ボタン - コマンド」コンポーネントを使用して、「実行」ボタンを追加します。
  5. ページを保管します。
サーバー上でページを実行 (Page Designer でページを右クリックし、「サーバーで実行」を選択) することにより、妥当性検査をテストすることができます。

例:「クイック編集」ビューを使用してカスタム妥当性検査を作成する

これはユーザーが Web ページでフィールドに入力した値についてカスタム妥当性検査を行う例です。 この例では、ユーザーが登録フォームを埋めて、「実行」ボタンをクリックします。 登録フォームを実行依頼する前に、 パスワード・フィールドとパスワードの確認フィールドの両方に、 同じパスワードが入力されていることを確認する妥当性検査を作成します。 さらに、パスワード・フィールドが少なくとも 6 文字長であることを妥当性検査します。 以下のステップはカスタム妥当性検査を作成する手順です。
  1. 登録フォーム (JSP、住所などのフィールドがある) を含む Faces JSP ファイル、 および「実行」ボタン (commandExButton) を作成する。
  2. 2 つの「非表示の入力 (inputSecret)」コンポーネントを Faces JSP ファイルにドラッグする。 最初のコンポーネントは「パスワード・フィールド」、2 番目のコンポーネントは「パスワードの確認フィールド」です。
  3. 最初の「非表示の入力」コンポーネントの「プロパティー」ビューを開く。「妥当性検査」パネルで、 「値を必須にする」をチェックする。
  4. 「最小長」を 6 文字に設定する。
  5. 「実行」ボタンをクリックする。
  6. 「実行」ボタンの 「クイック編集」ビューに切り替える (「ウィンドウ」 > 「ビューの表示」 > 「クイック編集」)。
  7. 以下のコードを「クイック編集」ビューの右側のペインに追加する。
    String text1Val = (String)getSecret1().getValue();
    String text2Val = (String)getSecret2().getValue();
    		
    System.out.println("text2Val = " + text1Val + " text2Val = " + text2Val);
    		
    if(!text1Val.equals(text2Val)){
    	System.out.println("NOT THE SAME");
    	FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR, "Passwords need to be the same", "Values should be the same");
    	getMessages1().setErrorStyle("color:Red");
    	getFacesContext().addMessage(null, message);
    	return "errorCondition";
    }
    return "successCondition";

    FacesMessage has the following constructors:

    FacesMessage()
    FacesMessage(FacesMessage.Severity, String summary, String detail)
    FacesMessage(String summary)
    FacesMessage(String summary, String detail)
  8. Faces JSP ページを保管して、サーバーで実行する。

フィードバック