-1

我正在尝试自己实现 ResourceBundle。我想从数据库中加载文本。我被某事困住了。

如何从 Map 对象以编程方式创建 ResourceBundle ?地图对象将具有基于区域设置的国际化文本。

谢谢,戴比斯

4

2 回答 2

6

这很简单:

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(当然,在您初始化之后)。

于 2013-01-21T17:48:47.707 回答
0

一定要ResourceBundle具体吗?Spring 提供了MessageSource具有各种实现的抽象。标准实现由 a 支持,ResourceBundle但也有替代方案,包括StaticMessageSource您可以从地图中填充的 a,以及由数据库支持的第三方实现,例如这个

于 2013-01-21T17:47:23.353 回答