4

リソースバンドルプロパティファイルがある場合:

A.properties:

thekey={0} This is a test

そして、リソースバンドルをロードするJavaコードがあります。

ResourceBundle labels = ResourceBundle.getBundle("A", currentLocale);
labels.getString("thekey");

{0}テキストを何らかの値に置き換えるにはどうすればよいですか

labels.getString("thekey", "Yes!!!");

出力が次のように出力されるようにします。

Yes!!! This is a test.

これを行うためのResourceBundleの一部であるメソッドはありません。また、私はStrutsにいますが、MessagePropertiesを使用して置換を行う方法はありますか。

4

2 に答える 2

11

探しているクラスは java.text.MessageFormat; です。具体的には、呼び出し

MessageFormat.format("{0} This {1} a test", new Object[] {"Yes!!!", "is"});

また

MessageFormat.format("{0} This {1} a test", "Yes!!!", "is");

戻ります

"Yes!!! This is a test"

[残念ながら、Struts 接続については役に立ちませんが、これは関係ありそうです。]

于 2008-09-15T23:59:14.687 に答える
2

さまざまなメソッド getMessage を持つクラスorg.apache.struts.util.MessageResourcesがあり、それらのいくつかは実際のメッセージに挿入する引数を取ります。

例えば。:

messageResources.getMessage("thekey", "Yes!!!");
于 2008-09-16T00:15:18.457 に答える