JSF標準コンバータについて

変換は、コンポーネント・データがクライアント・ブラウザからアプリケーション・サーバーに送信されるか、サーバーからブラウザに送信されるかによって、そのデータが文字列からJavaオブジェクトに、またはJavaオブジェクトから文字列に変換されるプロセスです。

たとえば、Webフォームの日付フィールドでは、java.util.Dateオブジェクトがテキスト文字列として書式パターンyyyy/mm/ddで表される場合があります。ユーザーが日付フィールドを編集し、フォームを発行した場合、文字列はアプリケーションで必要な型に戻される必要があります。

文字列と単純なデータ型の間の変換を処理するJSF標準コンバータは、javax.faces.convert.Converterインタフェースを実装します。提供されているJSF標準コンバータ・クラスは、次のとおりです。

注意: JSFでは、コンポーネント値のバインディング型がプリミティブ型、BigDecimalまたはBigIntegerの場合は、コンポーネント・データが自動的に変換されます。日付の値については、明示的なコンバータを追加する必要があります。これは、日付と時間の解析時および書式設定時に使用するスタイルおよびパターンを指定できるためです。

標準コンバータは、ValueHolderインタフェースを実装するコンポーネントに設定できます。

標準コンバータとそのタグ

JSF標準コンバータ・クラスの2つのクラスには固有のタグがあります。このタグを使用してタグ属性を構成すると、コンポーネント・データの書式および型を指定できます。固有のタグがある標準のコンバータ・クラスは、次のシンボリック名でJSFに登録されています。

タグ クラス 名前 変換対象
f:convertDateTime DateTimeConverter javax.faces.DateTime 文字列とjava.util.Dateの値
f:convertNumber NumberConverter javax.faces.Number 文字列とjava.lang.Numberの値

標準タグを使用するには、提供されているタグをコンポーネント内にネストします。次に、タグの属性を使用して、コンポーネント・データの書式および型を構成します。

標準タグの使用方法の詳細は、「提供されているタグを使用したコンポーネントへの標準コンバータの登録」を参照してください。サポートされているタグ属性のリストは、「リファレンス: JSF標準コンバータおよびバリデータ」を参照してください。

提供されているタグのないその他の標準コンバータ

その他のビルトイン・コンバータには固有のタグがありません。これらの標準コンバータは、特定のデータ型用にJSFに登録されています。

クラス 名前 変換対象
BigDecimal BigDecimalConverter javax.faces.BigDecimal 文字列とjava.math.BigDecimalの値
BigInteger BigIntegerConverter javax.faces.BigInteger 文字列とjava.math.BigIntegerの値
Boolean and boolean BooleanConverter javax.faces.Boolean 文字列とjava.lang.Boolean(およびbooleanプリミティブ)の値
Byteおよびbyte ByteConverter javax.faces.Byte 文字列とjava.lang.Numberの値
Characterおよびchar CharacterConverter javax.faces.Character 文字列とjava.lang.Character(およびcharプリミティブ)の値
Doubleおよびdouble DoubleConverter javax.faces.Double 文字列とjava.lang.Double(およびdoubleプリミティブ)の値
Floatおよびfloat FloatConverter javax.faces.Float 文字列とjava.lang.Float(およびfloatプリミティブ)の値
Integerおよびint IntegerConverter javax.faces.Integer 文字列とjava.lang.Integer(およびintプリミティブ)の値
Longおよびlong LongConverter javax.faces.Long 文字列とjava.lang.Long(およびlongプリミティブ)の値
Shortおよびshort ShortConverter javax.faces.Short 文字列とjava.lang.Short(およびshortプリミティブ)の値

提供されているタグのない標準コンバータは、次のいずれかの方法で使用できます。

標準タグのない標準コンバータの使用方法の詳細は、「提供されているタグのない標準コンバータの登録」を参照してください。

コンポーネントのデータをJSFでサポートされている標準型以外の型に変換する必要がある場合、またはデータの書式を変換する場合は、独自のカスタム・コンバータを作成できます。アプリケーションに対するカスタム・コンバータを作成および登録する方法の詳細は、「カスタムJSFコンバータおよびバリデータの使用」を参照してください。


変換および検証プロセスについて
変換および検証エラーについて
コンバータ属性について
JSFでのクライアント側の変換および検証について
JSF標準コンバータおよびバリデータの使用