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

ロケール依存または独自の方法で書式設定された数値、通貨およびパーセンテージの文字列表現を解析します。

構文

構文1: ボディなし

<fmt:parseNumber value=”numericValue
            [type=”{number|currency|percent}”]
             [pattern=” customPattern”]
            [parseLocale=” parseLocale”]
            [integerOnly=”{true|false}”]
   [var=” varName”]
    [scope=”{page|request|session|application}”]/>

構文2: ボディに解析する数値を指定

<fmt:parseNumber [type=”{number|currency|percent}”]
             [pattern=” customPattern”]
            [parseLocale=” parseLocale”]
            [integerOnly=”{true|false}”]
   [var=” varName”]
    [scope=”{page|request|session|application}”]/>
numeric value to be parsed
</fmt:parseNumber>

ボディ・コンテンツ

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

属性

value
解析する文字列。
type
value属性の文字列を数値、通貨、パーセンテージのいずれとして解析するかを指定します。
pattern
value属性の文字列の解析方法を決定する独自の書式パターン。
parseLocale
解析処理中に使用されるデフォルト書式パターン(数値用、通貨用、パーセンテージ用)のロケール、またはpattern属性(存在する場合)で指定したパターンが適用されるロケール。
integerOnly
指定した値の整数部分のみを解析するかどうかを指定します。
var
解析結果(java.lang.Number型)を格納するエクスポート・スコープ変数の名前。
scope
varのスコープ。

制約

NULLおよびエラーの処理

解析対象の数値文字列がNULLまたは空の場合、var属性およびscope属性で定義したスコープ変数が削除されます。これにより、空の入力を例外の原因となる無効な入力と区別することができます。

parseLocaleがNULLまたは空の場合、指定していない場合と同様に処理されます。

値の解析中に例外が発生した場合、その例外を捕捉し、JspExceptionとして再度スローする必要があります。再度スローするJspExceptionのメッセージには解析対象の値を含め、捕捉した例外を根本的原因として示す必要があります。

このアクションが書式ロケールを決定できない場合、JspExceptionをスローし、そのメッセージに解析対象の値を含める必要があります。

pattern属性がNULLまたは空の場合、無視されます。

説明

解析対象の数値はvalue属性で指定できます。指定しない場合は、アクションのボディ・コンテンツから読み取られます。

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

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

ロケール依存の方法で参照される場合、解析パターンはtype属性とparseLocale属性の組合せによって決定されます。type属性の値に応じて、指定した数値が数値、通貨またはパーセンテージとして解析されます。数値、通貨またはパーセンテージの解析パターンを決定するには、parseLocaleでロケールを指定して、java.text.NumberFormatのメソッドgetNumberInstance、getCurrencyInstanceまたはgetPercentInstanceをそれぞれコールします。parseLocaleを指定しない場合、書式ロケール(http://www.jcp.org/aboutJava/communityprocess/first/jsr052/index.htmlにある『JavaServer Pages Standard Tag Library 1.0 Specification』の9.2項に従って取得)が解析ロケールとして使用されます。

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

integerOnly属性では、指定した値の整数部分のみを解析するかどうかを指定します。詳細は、java.text.NumberFormatのメソッドsetParseIntegerOnly()を参照してください。

var属性を指定した場合、解析結果(java.lang.Number型)は指定のスコープ変数に格納されます。指定しない場合は、java.lang.Number.toString()を使用して現在のJspWriterオブジェクトに出力されます。

注意: 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)