2008-09-15 9 views
4

私は、リソースバンドルのプロパティファイルを使用している場合:のJava/StrutsのからのResourceBundleと置き換える表現

A.properties: thekeyは= {0}これはテスト

され、その後、私はその負荷のJavaコードを持っていますリソースバンドル:私はいくつかの値を持つ{0}のテキストを置き換えることができますどのように

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

labels.getString( "thekey"、 "はい!!!");

出力が次のようになります。

はい!!!これはテストです。

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

答えて

11

あなたが探しているクラスはjava.text.MessageFormatです。具体的には、[thisが関連見えますが、残念ながら、私は、Strutsの接続を支援することはできません。]

"Yes!!! This is a test" 

を返します

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

または

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

を呼び出す

2

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

例:。:

messageResources.getMessage("thekey", "Yes!!!"); 
関連する問題