JSTL書式ライブラリ - <fmt:formatNumber>タグ

ロケール依存または独自の方法で数値を数値、通貨またはパーセンテージとして書式設定します。

構文1: ボディなし

<fmt:formatNumber value=”numericValue
            [type=”{number|currency|percent}”]
             [pattern=” customPattern”]
            [currencyCode=” currencyCode”]
            [currencySymbol=” currencySymbol”]
            [groupingUsed=”{true|false}”]
            [maxIntegerDigits=” maxIntegerDigits”]
            [minIntegerDigits=” minIntegerDigits”]
            [maxFractionDigits=” maxFractionDigits”]
            [minFractionDigits=” minFractionDigits”]
   [var=” varName”]
    [scope=”{page|request|session|application}”]/>

構文2: ボディに書式設定する数値を指定

<fmt:formatNumber [type=”{number|currency|percent}”]
             [pattern=” customPattern”]
            [currencyCode=” currencyCode”]
            [currencySymbol=” currencySymbol”]
            [groupingUsed=”{true|false}”]
            [maxIntegerDigits=” maxIntegerDigits”]
            [minIntegerDigits=” minIntegerDigits”]
            [maxFractionDigits=” maxFractionDigits”]
            [minFractionDigits=” minFractionDigits”]
   [var=” varName”]
    [scope=”{page|request|session|application}”]/>
numeric value to be formatted
</fmt:formatNumber>

ボディ・コンテンツ

JSP。JSPコンテナがボディ・コンテンツを処理した後、アクションがボディ・コンテンツを切り捨ててさらに処理します。

属性

value
書式設定する数値。
type
値を数値、通貨、パーセンテージのいずれとして書式設定するかを指定します。
pattern
独自の書式パターン。
currencyCode
ISO 4217通貨コード。通貨の書式を設定する場合(typeがcurrencyの場合)にのみ適用されます。それ以外の場合は無視されます。
currencySymbol
通貨記号。通貨の書式を設定する場合(typeがcurrencyの場合)にのみ適用されます。それ以外の場合は無視されます。
groupingUsed
書式設定された出力にグループ・セパレータを含めるかどうかを指定します。
maxIntegerDigits
書式設定された出力の整数部分の最大桁数。
minIntegerDigits
書式設定された出力の整数部分の最小桁数。
maxFractionDigits
書式設定された出力の小数部分の最大桁数。
minFractionDigits
書式設定された出力の小数部分の最小桁数。
var
書式設定された結果をStringとして格納するエクスポート・スコープ変数の名前。
scope
varのスコープ。

制約

NULLおよびエラーの処理

説明

書式設定する数値はvalue属性で指定できます。指定しない場合は、タグのボディ・コンテンツから読み取られます。

書式パターンはpattern属性で指定できます。または、ロケール依存の方法で参照されます。

pattern属性で指定するパターン文字列は、java.text.DecimalFormatクラスで指定されるパターン構文に準拠している必要があります。

ロケール依存の方法で参照される場合、書式パターンは書式ロケールの組合せによって決定されます。書式ロケールは、JSTL仕様の9.2項、およびtype属性に従って決定されます。type属性の値に応じて、指定した数値が数値、通貨またはパーセンテージとして書式設定されます。数値、通貨またはパーセンテージに対するロケールのデフォルト書式パターンを決定するには、書式ロケールを指定して、java.text.NumberFormatのメソッドgetNumberInstancegetCurrencyInstanceまたはgetPercentInstanceをそれぞれコールします。

pattern属性はtype属性より優先されます。どちらの場合も、書式記号(小数点やグループ・セパレータなど)は書式ロケールによって指定されます。

(指定の、またはロケール依存の)書式パターンは、後述する書式設定オプションを使用してさらに調整できます。

数値を文字列リテラルとして指定した場合、その数値は最初にjava.lang.Numberに解析されます。文字列に小数点が含まれていない場合、その文字列はjava.lang.Long.valueOf()を使用して解析されます。小数点が含まれている場合は、java.lang.Double.valueOf()を使用して解析されます。

書式設定された結果は、現在のJspWriterオブジェクトに出力されます。ただし、var属性を指定した場合は、指定のスコープ変数に格納されます。

書式設定オプション

groupingUsed属性では、書式設定された出力にグループ・セパレータを含めるかどうかを指定します。詳細は、java.text.NumberFormatのメソッドsetGroupingUsed()を参照してください。

書式設定された出力の整数部分および小数部分の最小桁数と最大桁数は、minIntegerDigitsmaxIntegerDigitsminFractionDigitsmaxFractionDigitsの各属性で指定できます。詳細は、 java.text.NumberFormatのメソッドsetMinimumIntegerDigits()setMaximumIntegerDigits()setMinimumFractionDigits()およびsetMaximumFractionDigits()を参照してください。

通貨の書式設定

指定の、またはロケール依存の通貨用書式パターンを使用して通貨の書式を設定する場合、書式ロケールの通貨記号がデフォルトで使用されます。これは、currencySymbol属性またはcurrencyCode属性を使用してオーバーライドできます。これらの属性では、それぞれ使用する通貨の通貨記号または通貨コードを指定します。

currencyCodecurrencySymbolの両方を指定した場合、コンテナのランタイムでjava.util.Currencyクラスが定義されていれば(つまり、コンテナのランタイムがJ2SE 1.4以上であれば)、currencyCodecurrencySymbolより優先されます。java.util.Currencyクラスが定義されていなければ、currencySymbolが優先されます。currencyCodeのみを指定した場合、java.util.Currencyが定義されていなければ、currencyCodeは通貨記号として使用されます。

注意: JSTL 1.1では、Java Servlet 2.4およびJavaServer Pages 2.0の仕様をサポートするJSPコンテナが必要です。JSTL 1.0仕様の実装には、Java Servlet 2.3およびJavaServer Pages 1.2の仕様をサポートするJSPコンテナが必要です。

JSTLタグの状況依存ヘルプを提供するため、JSTLタグ・ライブラリのドキュメントがApache Software Foundation(http://www.apache.org/)で作成され、JDeveloperに含まれています。また、JSTLタグおよび属性の説明を含む『JavaServer Pages Standard Tag Library 1.0 and 1.1 Specifications』を次のWebサイトからダウンロードできます。

http://www.jcp.org/aboutJava/communityprocess/final/jsr052/index2.html

JSTLの詳細は、次の外部リファレンスを参照してください。

『Java Sun JSTL Resources』ページ:
http://java.sun.com/products/jsp/jstl/

 

JDeveloperのJSTLタグ・ライブラリについて
リファレンス: JavaServer Pages標準タグ・ライブラリ(JSTL)