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

リソース・バンドル内のローカライズされたメッセージを参照します。

構文

構文1: ボディ・コンテンツなし

<fmt:message key=”messageKey
         [bundle=” resourceBundle”]
         [var=” varName”]
         [scope=”{page|request|session|application}”]/>

構文2: ボディにメッセージ・パラメータを指定

<fmt:message key=”messageKey
         [bundle=” resourceBundle”]
         [var=” varName”]
         [scope=”{page|request|session|application}”]>
         <fmt:param> subtags
</fmt:message>

構文3: ボディにキーとオプションのメッセージ・パラメータを指定

<fmt:message [bundle=”resourceBundle”]
         [var=” varName”]
         [scope=”{page|request|session|application}”]>
key
optional <fmt:param> subtags
</fmt:message>

属性

key
参照されるメッセージ・キー。
bundle
メッセージ・キーが参照されるリソース・バンドルのローカライゼーション・コンテキスト。
var
ローカライズされたメッセージを格納するエクスポート・スコープ変数の名前。
scope
varのスコープ。

構文3の例

<fmt:message>アクションを次のように使用するだけで、WebアプリケーションのJSPページを国際化することが可能です。

<fmt:message key="greeting"/>

この場合、<fmt:message>がデフォルトのi18nローカライゼーション・コンテキストを利用するため、クライアント開発者はきわめて簡単にJSPページを国際化できます。

<fmt:message>は複合メッセージ(1つ以上の変数を含むメッセージ)もサポートします。このような変数のパラメータ値は、<fmt:param>サブタグを1つ以上(パラメータ値ごとに1つずつ)使用して指定できます。この方法をパラメータ置換と呼びます。

<fmt:message key="athletesRegistered">
<fmt:param>
   <fmt:formatNumber value=”${athletesCount}”/>
</fmt:param>
</fmt:message>

この例では、ロケールに応じて次のようなメッセージが出力されます。

フランス語: Il y a 10 582 athletes enregistres.

英語: There are 10,582 athletes registered.

説明

<fmt:message>アクションは、指定のメッセージ・キーに対応する、ローカライズされたメッセージを参照します。

メッセージ・キーは、key属性またはタグのボディ・コンテンツに指定できます。このアクションが<fmt:bundle>アクション内にネストされている場合に、親<fmt:bundle>アクションにprefix属性が指定されているときには、指定の接頭辞がメッセージ・キーに付加されます。

<fmt:message>は、http://www.jcp.org/aboutJava/communityprocess/first/jsr052/index.htmlにある『JavaServer Pages Standard Tag Library 1.0 Specification』の8.2項に従って決定されるi18nローカライゼーション・コンテキストのリソース・バンドルを使用します。

指定したキーがリソース・バンドル内に見つからない場合や、i18nローカライゼーション・コンテキストにリソース・バンドルが含まれていない場合には、参照の結果として「???<key>???」という形式のエラー・メッセージが返されます(<key>は未定義のメッセージ・キーの名前です)。

指定したキーに対応するメッセージが複合メッセージの場合(1つ以上の変数を含む場合)、<fmt:param>サブタグを1つ以上(パラメータ値ごとに1つずつ)使用して、このような変数のパラメータ値を指定できます。この方法をパラメータ置換と呼びます。パラメータ置換は、<fmt:param>サブタグの順に行われます。

<fmt:param>サブタグが1つ以上存在する場合、メッセージはjava.text.MessageFormatのメソッドapplyPattern()に渡され、<fmt:param>タグの値はObject[]内にまとめられてjava.text.MessageFormatのメソッドformat()に渡されます。java.text.MessageFormatのロケールは、applyPattern()がコールされる前に適切なローカライゼーション・コンテキストのロケールに設定されます。

メッセージが複合メッセージで<fmt:param>サブタグが指定されていない場合、そのメッセージは変更されずに残されます(つまり、java.text.MessageFormatは使用されません)。

<fmt:message>アクションでは、現在のJspWriterオブジェクトに結果が出力されます。ただし、var属性を指定した場合は、指定のJSP属性に格納されます。


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

 

Copyright © 1997, 2004, Oracle. All rights reserved.