【发布时间】:2009-03-17 10:33:17
【问题描述】:
我有一个现有的 Java/JSF 网站,屏幕上的所有文本都来自属性文件,通过
对于这些的运行时可配置子集,我想从其他地方(通过 Web 服务的 CMS)提取字符串。查看 ResourceBundle 类,它似乎有一个基础设施,用于与此类似的东西,并委托给父 ResourceBundle。
我想要这样的东西
public class Applicaltion extends ResourceBundle{
@Override
protected Object handleGetObject(String key) {
if(overridenKey(key)){
return overridedValue(key);
}
return null; // ResourceBundle.getObject will delegate to parent
// if we return null
}
}
我已经尝试过了,并且 parent 为 null,我认为这更多用于 default -> en -> en_GB 的情况。
我正在考虑一个不太吸引人的选项,即让属性文件与自定义 resourceBundle 的名称不同,然后从 CustomResourceBundle.handleGetObject(key) 中委托 ResourceBundle.getBundle(PROPERTY_FILE_NAME).getString(key) 的完整堆栈.
有更好的想法吗?
【问题讨论】:
-
我仍在寻找一个更好的答案,如果我在三月底之前没有得到更好的答案,我会接受我自己的答案。
标签: java resourcebundle