ページの先頭行へ戻る
 Apcoordinatorユーザーズガイド

4.5.2 Javaプログラムからの文字列の参照

リソースファイルで定義した文字列をJavaプログラムから参照するには、アプリケーションクラスか、UjiResourceクラスを使用して文字列を取得します。

アプリケーションクラスからの取得

アプリケーションクラス(com.fujitsu.uji.ApplicationProfileクラス)には以下のメソッドがあり、リソースファイルで定義した単一文字列、文字列配列、キー付き文字列を取得できます。

これらのメソッドの引数には取得する文字列のIDを指定します。以下は記述例です。

import com.fujitsu.uji.ApplicationProfile;
import com.fujitsu.uji.DispatchContext;
import java.util.Map;

...

public void startup(DispatchContext context) {
    ApplicationProfile ap = context.getApplicationProfile();
    // 単一文字列の取得
    String targetStr = ap.getResourceText("target");
    // 文字列配列の取得
    String[] priorStr = ap.getResourceArray("prior");
    // キー付き文字列配列の取得
    Map.Entry[] roomsStr = ap.getResourceMap("rooms");
    ...
}

第2引数にロケール ( java.util.Localeクラス) を指定すると、そのロケールに対応するリソースファイルが検索されて使用されます。例えば、ロケールja_JPに対しては、ファイルが以下の順序で検索され、最初に見つかったものが使用されます。

UjiResourceクラスからの取得

com.fujitsu.uji.util.UjiResourceクラスの以下のstaticメソッドを使用して文字列を取得できます。引数にはDispatchContextクラスと文字列のIDを指定します。

import com.fujitsu.uji.DispatchContext;
import com.fujitsu.uji.util.UjiResource;
import java.util.Map;

...

public void startup(DispatchContext context) {
    // 単一文字列の取得
    String targetStr = UjiResource.getResourceText(context, "target");
    // 文字列配列の取得
    String[] priorStr = UjiResource.getResourceArray(context, "prior");
    // キー付き文字列配列の取得
    Map.Entry[] roomsStr = UjiResource.getResourceMap(context, "rooms");
    ....
}

Webアプリケーション、電子フォームアプリケーションでは、HTTPリクエストからロケールが取得されます。HTTPのリクエストヘッダにAccept-Languageヘッダが存在する場合、Accept-Languageヘッダで指定されたロケールに対応するリソースファイルが使用されます。以下はAccept-Languageヘッダの例です。

Accept-Language: ja,en-us;q=0.5

この例の場合、以下の順序でリソースファイルが検索されます。

Accept-LanguageヘッダのQ値は使用されません。

UjiResourceクラスは文字列を取得するメソッド以外にも以下の機能を提供します。