Faces バンドル読み込みコンポーネント

関連項目

この拡張コンポーネントは、リソースバンドルをマップとして公開するカスタムの <f:loadBundle> タグを作成します。

このタグによって、ローカライズ可能な Web アプリケーションを作成できます。このタグの用途を説明するために、JSP ページで最終結果を表示する次の例を示します。

com.foo.mypackage.resources という標準的なリソースバンドルがあり、これを使って JSP ページ上のプロンプトをローカライズ化すると仮定します。次の JSP コードでは、my.message.key メッセージキーの下で、outputText によって描画される値に対するロケールのローカルルックアップが行われます。

   <f:view>
   ...
   <f:loadBundle basename="com.foo.mypackage.resources" var="msgs"/>
   ...
   <h:outputText value="#{msgs['my.message.key']}"/>
   ...
   </f:view>

この JSP コードが機能するのは、<f:loadBundle>java.util.Map オブジェクトを統合してリソースバンドルをラップし、var 属性によって指定されるキーの下に要求スコープ属性としてオブジェクトを格納するためです。値バインド式には Map のナビゲート方法が記述されているので、この手法は、フィールドプロンプトなどの項目のローカライズ化で使用すると効果的です。

リソースバンドルとプロパティーファイル

一般に、アプリケーション内部でリソースバンドルを提供する場合は、 リソースバンドルの作成と削除 で説明するように、メッセージを格納するプロパティーファイルを作成する必要があります。

新しいプロパティーファイルを作成すると、プロパティーエディタでこのファイルが開きます。追加するプロパティーごとに「新規プロパティー」をクリックし、「新規プロパティー」ダイアログでキーと値を入力します。

アプリケーションの配備時には、<f:loadBundle> タグが読み込めるよう、このプロパティーファイルが WEB-INF/classes/<プロジェクト名> ディレクトリに自動的にコピーされます。バンドルファイルを使用する際は、<f:loadBundle> タグの「basename」プロパティーの値として、プロジェクト名 (パッケージ名と同じ) とプロパティーファイルのベース名をピリオドで区切ったものを指定します。たとえば、プロジェクト名が webapplication1 で、プロパティーファイル名が Bundle の場合、コードは次のようになります。

<f:loadBundle basename="webapplication1.Bundle" var="var-name"/>

関連項目
コンポーネントについて

著作権と商標について