2011-08-09 4 views
4

ローカリゼーションにi18nプロパティファイルを使用するStruts2 Webアプリケーションがあります。 getTextメソッドは、jspとアクションクラスgetText("some.identifier")で完全に機能します。Struts2 i18n in javaクラス

しかし、アクションクラスではないJavaクラスでどのように使用できますか?つまり、getTextメソッドにアクセスできないクラスです。

答えて

4
ResourceBundle labels = 
    ResourceBundle.getBundle("MyBundle", currentLocale); 
Enumeration bundleKeys = labels.getKeys(); 

while (bundleKeys.hasMoreElements()) { 
    String key = (String)bundleKeys.nextElement(); 
    String value = labels.getString(key); 
    System.out.println("key = " + key + ", " + 
       "value = " + value); 
} 

何かがあなたのリソースバンドルあなたが実際にバンドルを再ロードする必要はありません

+0

ありがとうたくさんの男! – user829237

+0

ようこそ!それがあなたを助けたことを幸せに –

2

ResourceBuldleを使用すると、プロパティファイルを読み込んで目的のプロパティを取得できます。このような

+0

ご返信ありがとうございます。あなたはどのように短いコードサンプルを持っていますか? – user829237

4

読み込みます。あなたは、Strutsがロードされたことをコピーに活用するには、次のコードを使用することができます。

LocalizedTextUtil.findDefaultText(key, ActionContext.getContext().getLocale()); 

ActionContextはあなたが要求を処理するものとは別のスレッドからこれを呼び出そうとするので、地元のスレッドであることに注意してください、あなたはエラーに遭遇します。

ローカライズされたメッセージに引数を渡す必要がある場合、メソッドのオーバーロードされた形式は、オブジェクト配列を3番目のパラメータとして受け取ります。

関連する問題