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

JSF コンバーターは、JSF 形式のストリング値と JavaScript™ の型付きの値との間で変換を行います。例えば、数値コンバーターはストリング「$ 1,000.00」(入力フィールドの値の場合があります) を JavaScript 数値に変換します。

コンバーターの使用

基本的に、JSF コンバーターは Java™ NumberFormat および DateFormat クラスの JavaScript 実装 (および MaskFormat の実装) です。 これらのクラスのいずれかを使用してフォーマットされたストリングを JavaScript の型付きの値に変換し、その逆の変換も行います。

JSF コンバーターは、他の JWL コンポーネントで フィールドの妥当性検査、入力支援、およびクライアント・サイド・データの管理を行う際に使用されます。また、開発者が独自の クライアント・サイド妥当性検査を作成する場合にも有用です (例えば、2 つの「数値」フィールドの値を比較する場合に、 これらを使用して、値を JavaScript 数値に変換することができます)。

値を変換する前に、コンバーターを作成する必要があります。 例えば、ヒジュラ暦を使用して、フォーマット「年、月、日、年号」で 日付/時刻コンバーターを作成します。
<script>
     hX_5.addConverter("2", new hX_5.DateTimeConverter("strict:1", "icu4j", "epoch:i", "format:yyyy/MM/dd G"));
</script>
コンバーターを使用して、入力フィールドの値を JavaScript 日付/時刻オブジェクトに変換します。
<script>
	var c = hX_5.getConverterById("2");
	var v = document.getElementById("TestField");
	if (c!=null && v!= null) {
		var dt = c.stringToValue(v.value);
		if (dt!=null) {
			alert ("JavaScript object: " + dt);
		} else {
			alert ("Failed: " + 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 cID = hX_5.getBehaviorById("form1:text1", "validate", "onblur").getAttribute("converter");
     var cvt = hX_5.getConverterById(cID);
</script>

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

それぞれのコンバーターは、 JavaScript コンストラクターを 使用して構成され、addConverter 呼び出しを介してページに追加されます。

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

id

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

name

JSF コンポーネントの名前。

属性

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

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

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

id

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

コンバーターにおける共通 API 呼び出し

ストリングを JavaScript オブジェクトに変換するには、次のようにします。

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

cvt

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

string

変換されるストリング

returns

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

JavaScript オブジェクトをストリングに変換するには、次のようにします。

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

cvt

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

value

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

returns

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

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

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

cvt

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

returns

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

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

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

cvt

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

arg

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

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

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

cvt

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

argname

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

returns

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

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

コンバーター

説明

NumberConverter Java 形式の数値が含まれるストリングと JavaScript 数値オブジェクト間の変換を行います。
DateTimeConverter Java 形式の日付/時刻が含まれるストリングと JavaScript 日付オブジェクト間の変換を行います。
MaskConverter Java 形式のマスクされたストリングが含まれるストリングと JavaScript ストリング・オブジェクト間の変換を行います。
関連概念
JSF ウィジェット・ライブラリー (JWL)
関連タスク
Faces JSP ページへの入力コンポーネントの追加

フィードバック