我想要做我自己的ResourceBundle的實現。我想從數據庫中加載文本。 我被困住了。ResorceBundle來自Java中的地圖
如何從Map對象以編程方式創建ResourceBundle?地圖對象將具有基於區域設置的國際化文本。
感謝, Deibys
我想要做我自己的ResourceBundle的實現。我想從數據庫中加載文本。 我被困住了。ResorceBundle來自Java中的地圖
如何從Map對象以編程方式創建ResourceBundle?地圖對象將具有基於區域設置的國際化文本。
感謝, Deibys
是否必須ResourceBundle
特別? Spring爲各種實現提供了一個MessageSource
抽象。標準實現由ResourceBundle
支持,但還有其他替代方案,包括可以從地圖填充的StaticMessageSource
,以及由數據庫支持的第三方實施such as this one。
這是非常簡單的:
public class MapResourceBundle extends ResourceBundle {
Map<String, Object> map;
public MapResourceBundle(Map<String, Object> map) {
this.map = map;
}
@Override
protected Object handleGetObject(String key) {
return map.get(key);
}
@Override
public Enumeration<String> getKeys() {
return Collections.enumeration(map.keySet());
}
}
在此之後,你可以使用MapResourceBundle
(你已經初始化,當然後)。
其實我想用:ResourceBundle.getBundle(BUNDLE_NAME,FacesContext.getCurrentInstance()。getViewRoot() \t \t .getLocale(),CONTROL)這將返回一個ResourceBundle,在CONTROL對象的newBundle方法中,我應該基於Map對象創建一個ResourceBundle – Deibys
製作[ListResourceBundle](http://docs.oracle.com/javase/tutorial/i18n/resbundle/list.html)。 –