ResourceBundle を独自に実装しようとしています。データベースからテキストをロードしたい。私は何かで立ち往生しています。
Map オブジェクトからプログラムで ResourceBundle を作成するにはどうすればよいですか? マップ オブジェクトには、ロケールに基づいて国際化されたテキストが含まれます。
ありがとう、デイビス
ResourceBundle を独自に実装しようとしています。データベースからテキストをロードしたい。私は何かで立ち往生しています。
Map オブジェクトからプログラムで ResourceBundle を作成するにはどうすればよいですか? マップ オブジェクトには、ロケールに基づいて国際化されたテキストが含まれます。
ありがとう、デイビス
それは非常に簡単です:
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
か?Springは、MessageSource
さまざまな実装で抽象化を提供します。標準の実装はに支えられていますが、マップからデータを取り込むことができるものや、DBに支えられているこのようなサードパーティの実装などResourceBundle
の代替手段があります。StaticMessageSource