バリデーター・オブジェクト

JSF バリデーターは、ストリングまたは JavaScript™ オブジェクト (ストリング、数値、日付) の値を検査して、値が JSF 検証規則に準拠しているかを検証します。 例えば、日付バリデーターは、ストリングが日付として正しくフォーマットされているかどうか、 および日付が指定された範囲内であることを検査することができます。

JSF バリデーターは、他の JWL コンポーネントで フィールドの妥当性検査、入力支援、およびクライアント・サイド・データの管理を行う際に使用されます。

バリデーターの使用

入力フィールドの値が数値であり、有効であることを検査するには、 最初にコンバーターとバリデーターを作成します。 例えば、整数コンバーターを作成し、数値が 18 から 21 の間であるかどうかを検査する バリデーターを作成します。
<script>
     hX_5.addConverter("1", new hX_5.NumberConverter("strict:1", "pattern:##", "locale:,.%‰-€"));
     hX_5.addValidator("2", new hX_5.NumberValidator("required:true", "minimum-bound:18", "maximum-bound:21"));
</script>
コンバーターを使用して、入力フィールドの値を JavaScript 数値に変換してから、その数値を検証します。
<script>
     var c = hX_5.getConverterById("1");
     var v = hX_5.getValidatorById("2");
     var x = document.getElementById("TestField");
     if (c!=null && v!= null && x!=null) {
         var n = c.stringToValue(x.value);
         if (n!=null) {
         			if (v.validate(n)) {
             	alert ("Number is OK");
             } else {
             alert ("Number not valid: " + v.lastError());
             }
         } else {
             alert ("Not a number: " + c.lastError());
         }
     }
</script>
JSF タグによってバリデーターが生成されたページで、 バリデーターを作成した振る舞いからバリデーターを取得することによって、バリデーターにアクセスできます。 例えば、以下の JSF タグがページに配置されたと仮定します。
<h:inputText styleClass="inputText" id="text1"
size="6" value="#{myBean.myBigDecimal01}">
     <f:convertNumber pattern="##0.0"/>
     <hx:inputHelperSpinner delta="0.1"/>
     <hx:inputHelperAssist validation="true" errorClass="inputText_Error"/>
     <f:validateDoubleRange minimum="-100.0" maximum="100.0"></f:validateDoubleRange>
</h:inputText>
振る舞いを見つけて、その振る舞いからバリデーター ID を取得することに よって、JSF で生成された振る舞いが発行するバリデーターを取得できます。
<script>
     var vID = hX_5.getBehaviorById("form1:text1", "validate", "onblur").getAttribute("validator");
     var vld = hX_5.getValidatorById(vID);
</script>

バリデーターを作成および検索する hx 呼び出し

hX_5.addValidator("id", new hX_5.NameValidator(attributes)); 各部の意味は次のとおりです。

id

このバリデーターに割り当てられる ID。 この ID は、ページ (またはポータル) 内で作成される、 すべてのバリデーター間で固有でなければなりません。 任意の文字列値を、ID として使用できます。

validatorName

JSF バリデーターの名前。 バリデーターのリストについては、以下を参照してください。

属性

コンマで区切られた属性のリスト。 各属性は、属性名と値から成る引用符付きストリングになっており、 コロンで区切られています (例: "label:MyLabel")。

バリデーター・オブジェクトを取得するには、次のようにします。

var x = hX_5.getValidatorById("id"); 各部の意味は次のとおりです。

id

このバリデーターに割り当てられる ID。 この ID は、ページ (またはポータル) 内で作成される、 すべてのバリデーター間で固有でなければなりません。 任意の文字列値を、ID として使用できます。

バリデーターにおける共通 API 呼び出し

値を検証するには、次のようにします。

var x = vld.validate(value, cvt); 各部の意味は次のとおりです。

vld

バリデーター・オブジェクト。

value

コンバーターの JavaScript オブジェクトの型 (数値、日付/時刻、またはストリング)

cvt

コンバーター・オブジェクト

returns

コンバーターの JavaScript オブジェクトの型 (数値、日付/時刻、またはストリング)。 変換できない場合は、null が戻され、lastError が設定されます。

最後の検証が失敗した 理由についての情報を取得するには、次のようにします。

var x = vld.lastError();

var x = cvt.stringToValue("string"); 各部の意味は次のとおりです。

vld

バリデーター・オブジェクト。

returns

コンバーターの JavaScript オブジェクトの型 (数値、日付/時刻、またはストリング)。 変換できない場合は、null が戻され、lastError が設定されます。

バリデーターの属性を変更するには、次のようにします。

vld.setAttribute("arg"); 各部の意味は次のとおりです。

vld

バリデーター・オブジェクト。

arg

JSF 属性/値のストリング。

バリデーターの属性を取得するには、次のようにします。

var x = vld.getAttribute("argname"); 各部の意味は次のとおりです。

vld

バリデーター・オブジェクト。

argname

属性名を含むストリング。

returns

コンバーターの JavaScript オブジェクトの型 (数値、日付/時刻、またはストリング)。 変換できない場合は、null が戻され、lastError が設定されます。

表 1. バリデーター・オブジェクト

バリデーター

説明

NumberValidator Java 形式の数値が含まれるストリング、または JavaScript 数値オブジェクトを 検証します。
DateValidator Java 形式の日付が含まれるストリング、または JavaScript 日付オブジェクトを 検証します。
StringValidator Java 形式のマスクされたストリングが含まれるストリング、または JavaScript ストリングを検証します。
関連概念
JSF ウィジェット・ライブラリー (JWL)

フィードバック