我有一個Struts2 web應用程序,它使用國際化的i18n屬性文件。 getText
方法在jsp和動作類getText("some.identifier")
中完美工作。java類中的Struts2 i18n
但是我如何在不是動作類的java類中使用它?換句話說,不能訪問getText
方法的類。
我有一個Struts2 web應用程序,它使用國際化的i18n屬性文件。 getText
方法在jsp和動作類getText("some.identifier")
中完美工作。java類中的Struts2 i18n
但是我如何在不是動作類的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);
}
像這樣的事情會讀取你的資源包
你實際上並不需要重新加載包。您可以使用下面的代碼進軍副本的Struts已加載:
LocalizedTextUtil.findDefaultText(key, ActionContext.getContext().getLocale());
記住ActionContext
是線程局部的,所以如果你試圖從不同的線程比一個處理請求調用此方法,你會遇到一個錯誤。
的方法的一個重載形式接受一個對象數組作爲第三個參數,如果需要將參數傳遞給該本地化消息。
非常感謝! – user829237
歡迎!很高興它幫助你 –