ローカリゼーションにi18nプロパティファイルを使用するStruts2 Webアプリケーションがあります。 getText
メソッドは、jspとアクションクラスgetText("some.identifier")
で完全に機能します。Struts2 i18n in javaクラス
しかし、アクションクラスではないJavaクラスでどのように使用できますか?つまり、getText
メソッドにアクセスできないクラスです。
ローカリゼーションにi18nプロパティファイルを使用するStruts2 Webアプリケーションがあります。 getText
メソッドは、jspとアクションクラスgetText("some.identifier")
で完全に機能します。Struts2 i18n in javaクラス
しかし、アクションクラスではないJavaクラスでどのように使用できますか?つまり、getText
メソッドにアクセスできないクラスです。
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);
}
何かがあなたのリソースバンドルあなたが実際にバンドルを再ロードする必要はありません
ResourceBuldleを使用すると、プロパティファイルを読み込んで目的のプロパティを取得できます。このような
ご返信ありがとうございます。あなたはどのように短いコードサンプルを持っていますか? – user829237
読み込みます。あなたは、Strutsがロードされたことをコピーに活用するには、次のコードを使用することができます。
LocalizedTextUtil.findDefaultText(key, ActionContext.getContext().getLocale());
ActionContext
はあなたが要求を処理するものとは別のスレッドからこれを呼び出そうとするので、地元のスレッドであることに注意してください、あなたはエラーに遭遇します。
ローカライズされたメッセージに引数を渡す必要がある場合、メソッドのオーバーロードされた形式は、オブジェクト配列を3番目のパラメータとして受け取ります。
ありがとうたくさんの男! – user829237
ようこそ!それがあなたを助けたことを幸せに –