変換は、コンポーネント・データがクライアント・ブラウザからアプリケーション・サーバーに送信されるか、サーバーからブラウザに送信されるかによって、そのデータが文字列からJavaオブジェクトに、またはJavaオブジェクトから文字列に変換されるプロセスです。
たとえば、Webフォームの日付フィールドでは、java.util.Date
オブジェクトがテキスト文字列として書式パターンyyyy/mm/dd
で表される場合があります。ユーザーが日付フィールドを編集し、フォームを発行した場合、文字列はアプリケーションで必要な型に戻される必要があります。
文字列と単純なデータ型の間の変換を処理するJSF標準コンバータは、javax.faces.convert.Converter
インタフェースを実装します。提供されているJSF標準コンバータ・クラスは、次のとおりです。
BigDecimalConverter
BigIntegerConverter
BooleanConverter
ByteConverter
CharacterConverter
DateTimeConverter
DoubleConverter
FloatConverter
IntegerConverter
LongConverter
NumberConverter
ShortConverter
注意: 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プリミティブ)の値
|
提供されているタグのない標準コンバータは、次のいずれかの方法で使用できます。
converter
属性を指定します。
f:converter
タグをネストします。このタグのconverterId
属性を使用してコンバータの名前を参照します。
標準タグのない標準コンバータの使用方法の詳細は、「提供されているタグのない標準コンバータの登録」を参照してください。
コンポーネントのデータをJSFでサポートされている標準型以外の型に変換する必要がある場合、またはデータの書式を変換する場合は、独自のカスタム・コンバータを作成できます。アプリケーションに対するカスタム・コンバータを作成および登録する方法の詳細は、「カスタムJSFコンバータおよびバリデータの使用」を参照してください。
変換および検証プロセスについて
変換および検証エラーについて
コンバータ属性について
JSFでのクライアント側の変換および検証について
JSF標準コンバータおよびバリデータの使用
Copyright © 1997, 2007, Oracle. All rights reserved.